51
yjl.im Screenshot

yjl.im

Passed
0%
To Improve
0%
Errors
0%
Start optimizing yjl.im
  • Reviews are automatically refreshed every day
  • Track search engine rankings of your important keywords
  • Crawl your website for errors and content issues
  • Receive weekly updates in your mailbox

Marketing Checklist

Get help from a Certified Expert Become an Expert

Michael Johnston Michael Johnston
Selinsgrove (PA)
Denise Grothouse Denise Grothouse
Germansville (PA)
Robert McDowell Robert McDowell
Virginia Beach (VA)
On-Page

Content

Title Tag

Yu-Jie Lin Blog

Length: 15 character(s) (108 pixels)

HTML title tags appear in browser tabs, bookmarks and in search results.

It looks like your title tag is a little outside the ideal length. Since they are one of the most important on-page SEO elements you should make your title tags between 20 and 70 characters including spaces (200 - 569 pixels). Make sure each page has a unique title and use your most important keywords. For internal pages start your title tags with your most important keyword(s).

Check the title of your website

Meta Description

Missing

The meta description for yjl.im is missing.

Meta descriptions allow you to influence how your web pages are described and displayed in search results. A good description acts as a potential organic advertisement and encourages the viewer to click through to your site.

Keep it short and to the point; the ideal meta description should be between 70 and 160 characters spaces included (400 - 940 pixels).

Ensure that each of your web pages have a unique meta description that is explicit and contains your most important keywords for each page. These keywords are especially important because they appear in bold when they match the user’s search query (See the Google Preview below).

Check your Google Search Console (Search Appearance > HTML Improvements) for any warning messages to identify meta descriptions that are too long/short or duplicated across more than one page.

Improve the Meta Description

Headings

<H1> <H2> <H3> <H4> <H5>
1 5 6 4 0
<H1> YJL
<H2> To my dear blog
<H2> C notes
<H2> How I make a video for my YouTube channel
<H2> SotD: Not Ready To Make Nice by Dixie Chicks
<H2> GHC and Cabal notes
<H3> 1 $HOME/.local installation with Autotools
<H3> 1 Making the video
<H3> 2 Choosing one to make
<H3> 3 Searching for new projects
<H3> 1 Rant, first
<H3> 2 Cabal sandbox
<H4> 1.1 pkg-config
<H4> 1.2 configure
<H4> 2.1 Installing
<H4> 2.2 Uninstalling
and 13 more.

Great, your website is structured using HTML headings (<H1> to <H6>).

Use your keywords in the headings and make sure the first level (<H1>) includes your most important keywords. Never duplicate your title tag content in your header tag.

While it is important to ensure every page has an <H1> tag, only include more than one per page if you're using HTML5. Instead, use multiple <H2> - <H6> tags.

Add the important keywords in <H> headings

Content Analysis

  • yu-jie lin blog 2
  • online casinos 3
  • terminal window 2
  • sandbox delete 2
  • user home 2
  • dear blog 2
  • february 09 2
  • user script 2
  • install package 3
  • new projects 2
  • cabal sandbox 5
  • shared libraries 2
  • song 3
  • local installation 2
  • package 8
  • haskell 5
  • libraries 3
  • youtube 5
  • record 6
  • cabal 13

This data represents the words and phrases that your page appears to be optimized around. We use what’s called “natural language processing" (NLP), which is a form of artificial intelligence that allows computers to read human language, to do this analysis.

The numbers next to each word or phrase represents how often we detected them and their variants on the page.

Are these the keywords you want to target for your page? If so, great! Track your site’s rankings in Google search results using WooRank’s Keyword Tool.

If these keywords aren’t relevant to your page, consider updating your content to optimize it for your target keywords.

Alt Attribute

We found 1 images on this web page.

No ALT attributes are missing.

Alternative text allows you to add a description to an image. Since search engine crawlers cannot see images, they rely on alternative text attributes to determine relevance to a search query. Alternative text also helps makes an image more likely to appear in a Google image search and is used by screen readers to provide context for visually impaired users.

It looks like most or all of your images have alternative text. Check the images on your website to make sure accurate and relevant alternative text is specified for each image on the page.

Try to keep your alternative text to a simple, one-sentence description of what's in the image.

Set a name for all your images

Language

Declared: Missing

Detected: English

Your website hasn't specified a language yet. Use the META Language Attribute to declare the intended language of your website. We've detected that your website is currently in -.

Here are some tips for multilingual websites:

Declare the language used

Web Feeds

A Web feed essentially enables visitors to receive information from your site without having to manually visit your website themselves. This allows you to consistently engage with your users, even when they are elsewhere.

Web Feeds can be used across a network of websites for product alerts, news, blog updates and more. Users can choose to subscribe to your content and receive notifications. Most multimedia content available on the web can be easily and efficiently distributed to your users using feeds.

The content would be delivered to the user in either RSS, ATOM, or JSON format. The aggregation of a web feed is the act of making a collection of web feeds available on one page.

Adding a web feed depends on the CMS you're using. Check with your CMS for specific instructions. You can also check this tutorial on creating RSS feeds for your website. Once it's added, start advertising it on your pages.

Indexing

URL Resolve

Great, a redirect is in place to redirect traffic from your non-preferred domain.

All versions of your page point to the same URL.

Search engines see www.yjl.im and yjl.im as different websites. This means they could see a large amount of duplicate content, which they don't like.

Fortunately your website redirects www.yjl.im and yjl.im to the same site.

Redirect non-www to www

Robots.txt

Missing

A robots.txt file allows you to restrict the access of search engine crawlers to prevent them from accessing specific pages or directories. They also point the web crawler to your page’s XML sitemap file.

We checked yjl.im/robots.txt and didn't find a robots.txt file. Use Google Search Console to submit and test your robots.txt file. You can also test individual pages to make sure Google isn't crawling any restricted files.

Add a robots.txt file

XML Sitemap

No sitemap found in your robots.txt.

We checked the robots.txt file for yjl.im but couldn't find an XML sitemap. Specifying the location of your XML sitemaps in your robots.txt file ensures that search engines and other crawlers find and access it easily each time they access your website.

Learn more about adding your XML sitemap to your robots.txt file.

If you haven't created a sitemap yet, we recommend you generate one for your site and submit it through both Google Search Console and Bing Webmaster Tools. Usually, your XML sitemap would be found at yjl.im/sitemap.xml

Make sure to only include the pages you want search engines to crawl, so leave out any that have been blocked in a robots.txt file. Avoid using any URLs that cause redirects or error codes and be consistent in using your preferred URLs (with or without www.), correct protocols (http vs. https) and trailing slashes.
Add and Optimize your XML sitemap

URL Parameters

Perfect, your URLs look clean.

URL parameters are used to track user behaviors on site (session IDs), traffic sources (referrer IDs) or to give users control over the content on the page (sorting and filtering). The issue with URL parameters is that Google sees each unique parameter value as a new URL hosting the same thing - meaning you could have a duplicate content problem. Sometimes, it’s able to recognize these URLs and group them together. It then algorithmically decides which URL is the best representation of the group and uses it to consolidate ranking signals and display in search results. You can help Google recognize the best URL by using the rel="canonical" tag.

Use the URL Parameters Tool in Google Search Console to tell Google how your URL parameters affect page content and how to to crawl URLs with parameters. Use this tool very carefully - you can easily prevent Google from crawling pages you want indexed through overly restrictive crawling settings, especially if you have URLs with multiple parameters.

Check the On-Page section of Site Crawl to identify any duplicate content issues.
Rewrite your URLs and clean them up.

Hreflang Tags

No hreflang tags were found on this page

The hreflang tag is an HTML tag that tells search engines which languages and (optionally) countries a page's content is relevant for. Hreflang tags also tell search engines where to find the relevant content in alternate languages.

If your website targets users all around the world, using hreflang tags will help make sure the right content is being served to the right users.

The value of the hreflang attribute identifies the language (in ISO 639-1 format) and optionally a region in ISO 3166-1 Alpha 2 format of an alternate URL.

Use WooRank's Site Crawl to perform a thorough check on hreflang validity across a website.

Underscores in the URLs

Great, you are not using ‪underscores (these_are_underscores) in your URLs.

Great, you aren't using ‪underscores (these_are_underscores) in your URLs.

Google sees hyphens as word separators while underscores aren't recognized. So the search engine sees www.example.com/green_dress as www.example.com/greendress. The bots will have a hard time determining this URL's relevance to a keyword.

Mobile

Mobile Friendliness

Fair    Fair

This website is not optimized for Mobile Visitors

Mobile friendly pages make it easy for users to complete their objectives and common tasks and use a design or template that is consistent across all devices (uses responsive web design).

Google released a new mobile ranking algorithm that expanded the use of mobile-friendliness in its mobile search rankings. With almost half of all Google search queries originating on a mobile device, it is important to make sure your mobile site is optimized for these users.

Mobile Rendering

yjl.im on an iPhone
yjl.im on an iPad

This is how your website appears when displayed on different mobile devices.

With more than half of all Google search queries originating on a mobile device, it is important to make sure your mobile site is optimized for these users.

Tap Targets

In the table below, find the tap targets that are too small, their size in pixels and the overlapping target that is too close to be easily clicked.

Tap Target Size Overlapping Target
<a href="/search/label/country%20music" rel="tag">country music</a> 91x17 <a href="/search/label/pop%20music" rel="tag">pop music</a>
<a href="/search/label/Grammy%20Award" rel="tag">Grammy Award</a> 102x17 <a href="/search/label/pop%20music" rel="tag">pop music</a>
<a href="/search/label/pop%20music" rel="tag">pop music</a> 207x45 <a href="/search/label/Song%20of%20the%20Day" rel="tag">Song of the Day</a>
<a href="/" title="home">~</a> 35x37 <a href="/p/about.html" title="about">?</a>
<a href="/p/about.html" title="about">?</a> 35x37 <a href="/p/search.html" title="search">/</a>
and 2 more.
Your page’s links and buttons are too small and/or too close to be easily clicked on a mobile device. The average fingertip area is 48 pixels in width and height. Tap targets should also be spaced enough so that a user's finger pressing on one link or button does not inadvertently touch another one. The minimum required space between tap targets is 8 pixels on all sides.

Use Google's Lighthouse tool to get a detailed look at all of your too tap targets that are too small and too close together.

Plugins

Perfect, no plugin content detected.

Great, your website does not embed any special types of web content, such as Flash, Silverlight or Java, so your content can be accessed on all devices.

Font Size Legibility

Perfect, this web page’s text is legible on mobile devices.

At least 60% of your page’s font size is 12 pixels or greater.

Mobile Viewport

This page does not specify a viewport, or the viewport is not well configured.

The content fits within the specified viewport size.

The viewport is an element of a page’s responsive design. It’s the area of a webpage visible to the user and varies between devices.

It looks like your page could be missing a meta viewport.

Use the meta viewport tag in the <head> to set the viewport to the device’s screen size. It should look like this: <meta name="viewport" content="width=device-width, initial-scale=1.0">.

Mobile Frameworks

No mobile frameworks have been detected.

Mobile or responsive frameworks are an important part of website optimization as they assist developers in creating applications which are applicable to multiple devices.

AMP

We didn't find AMP on your page.

AMP is an open-source library that provides a straightforward way to create web pages that are compelling, smooth, and load near instantaneously for users.

Check your AMP markup with the AMP validator.

Structured Data

Schema.org

Errors
Type BlogPosting expects a property headline.
{
  "id": "_:b2",
  "type": "BlogPosting"
}
Type BlogPosting expects a property publisher.
{
  "id": "_:b2",
  "type": "BlogPosting"
}
Type BlogPosting expects a property author.
{
  "id": "_:b2",
  "type": "BlogPosting"
}
Type BlogPosting expects a property image.
{
  "id": "_:b2",
  "type": "BlogPosting"
}
Type BlogPosting expects a property publisher.
{
  "id": "_:b3",
  "type": "BlogPosting",
  "articleBody": "\nDear blog,\n\nIve just realized that you and me have never had a talk before, this is our first. Sadly, this wouldnt go well.\n\nEverything has its time, sooner or later, it will come to an end. Unfortunately, Its the time for you.\n\nBlogger might not be the perfect platform for people like me and blogs like you, but its stable and you only get hiccups from me. Sorry about those.\n\nId spent a lot of time to design you and to write on your, 102 commits in private repository for the template and 260 commits for posts. I cant say you look pretty in others eyes, but surely you are in mine.\n\nYou were born on 2010-04-16, 5 years and 316 days ago. This is post number 1,794 and the very last number.\n\nSo long, its been nice with you.\n\nyjl\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2017-05-22T16:59:00-08:00"
  },
  "headline": "To my dear blog",
  "name": "To my dear blog",
  "url": "https://blog.yjl.im/2016/02/to-my-dear-blog.html"
}
Type BlogPosting expects a property author.
{
  "id": "_:b3",
  "type": "BlogPosting",
  "articleBody": "\nDear blog,\n\nIve just realized that you and me have never had a talk before, this is our first. Sadly, this wouldnt go well.\n\nEverything has its time, sooner or later, it will come to an end. Unfortunately, Its the time for you.\n\nBlogger might not be the perfect platform for people like me and blogs like you, but its stable and you only get hiccups from me. Sorry about those.\n\nId spent a lot of time to design you and to write on your, 102 commits in private repository for the template and 260 commits for posts. I cant say you look pretty in others eyes, but surely you are in mine.\n\nYou were born on 2010-04-16, 5 years and 316 days ago. This is post number 1,794 and the very last number.\n\nSo long, its been nice with you.\n\nyjl\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2017-05-22T16:59:00-08:00"
  },
  "headline": "To my dear blog",
  "name": "To my dear blog",
  "url": "https://blog.yjl.im/2016/02/to-my-dear-blog.html"
}
Type BlogPosting expects a property image.
{
  "id": "_:b3",
  "type": "BlogPosting",
  "articleBody": "\nDear blog,\n\nIve just realized that you and me have never had a talk before, this is our first. Sadly, this wouldnt go well.\n\nEverything has its time, sooner or later, it will come to an end. Unfortunately, Its the time for you.\n\nBlogger might not be the perfect platform for people like me and blogs like you, but its stable and you only get hiccups from me. Sorry about those.\n\nId spent a lot of time to design you and to write on your, 102 commits in private repository for the template and 260 commits for posts. I cant say you look pretty in others eyes, but surely you are in mine.\n\nYou were born on 2010-04-16, 5 years and 316 days ago. This is post number 1,794 and the very last number.\n\nSo long, its been nice with you.\n\nyjl\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2017-05-22T16:59:00-08:00"
  },
  "headline": "To my dear blog",
  "name": "To my dear blog",
  "url": "https://blog.yjl.im/2016/02/to-my-dear-blog.html"
}
Type BlogPosting expects a property publisher.
{
  "id": "_:b4",
  "type": "BlogPosting",
  "articleBody": "\n\nNote\n\nThis is a note currently nothing about about the programming, but the use of C project.\n\n\n\n1   $HOME/.local installation with Autotools\n\nNormally, project with GNU Autotools, you can build and install to specified location, for example\n\n% ./configure --prefix=$HOME/.local\n% make\n% make install\n\n\nWhich installs the files to $HOME/.local other than commonly default /usr/local. On most distributions, you shouldnt have issues with /usr/local installation, not just the executables, but also the libraries, pkg-config, linking, they all should be configured system-wide.\n\nHowever, its not the case for user home installation, you will need to take some steps to ensure things can be found.\n\n\n1.1   pkg-config\n\nexport LD_LIBRARY_PATH=$HOME/.local/lib\nexport PKG_CONFIG_PATH=$HOME/.local/lib/pkgconfig:/usr/lib64/pkgconfig\n\n\nLD_LIBRARY_PATH makes sure any shared libraries are linked during the compilation can be found when you execute the program.\n\nPKG_CONFIG_PATH isnt for additional paths, so you still need to provide the system pkg-config locations.\n\n\n\n1.2   configure\n\nWhen startup, continues sources prefix/share/config.site, if found, prefix is either default or one you specify with --prefix. In my case, it is $HOME/.local/share/config.site and I have the following content:\n\nCPPFLAGS=-I$HOME/.local/include\nLDFLAGS=-L$HOME/.local/lib\n\n\nThey will make sure the header files can be found and linker knows there the shared libraries are stored.\n\n\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2017-02-11T18:25:00-08:00"
  },
  "headline": "C notes",
  "keywords": [
    "C",
    "installation"
  ],
  "name": "C notes",
  "url": "https://blog.yjl.im/2016/02/c-notes.html"
}
Type BlogPosting expects a property author.
{
  "id": "_:b4",
  "type": "BlogPosting",
  "articleBody": "\n\nNote\n\nThis is a note currently nothing about about the programming, but the use of C project.\n\n\n\n1   $HOME/.local installation with Autotools\n\nNormally, project with GNU Autotools, you can build and install to specified location, for example\n\n% ./configure --prefix=$HOME/.local\n% make\n% make install\n\n\nWhich installs the files to $HOME/.local other than commonly default /usr/local. On most distributions, you shouldnt have issues with /usr/local installation, not just the executables, but also the libraries, pkg-config, linking, they all should be configured system-wide.\n\nHowever, its not the case for user home installation, you will need to take some steps to ensure things can be found.\n\n\n1.1   pkg-config\n\nexport LD_LIBRARY_PATH=$HOME/.local/lib\nexport PKG_CONFIG_PATH=$HOME/.local/lib/pkgconfig:/usr/lib64/pkgconfig\n\n\nLD_LIBRARY_PATH makes sure any shared libraries are linked during the compilation can be found when you execute the program.\n\nPKG_CONFIG_PATH isnt for additional paths, so you still need to provide the system pkg-config locations.\n\n\n\n1.2   configure\n\nWhen startup, continues sources prefix/share/config.site, if found, prefix is either default or one you specify with --prefix. In my case, it is $HOME/.local/share/config.site and I have the following content:\n\nCPPFLAGS=-I$HOME/.local/include\nLDFLAGS=-L$HOME/.local/lib\n\n\nThey will make sure the header files can be found and linker knows there the shared libraries are stored.\n\n\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2017-02-11T18:25:00-08:00"
  },
  "headline": "C notes",
  "keywords": [
    "C",
    "installation"
  ],
  "name": "C notes",
  "url": "https://blog.yjl.im/2016/02/c-notes.html"
}
Type BlogPosting expects a property image.
{
  "id": "_:b4",
  "type": "BlogPosting",
  "articleBody": "\n\nNote\n\nThis is a note currently nothing about about the programming, but the use of C project.\n\n\n\n1   $HOME/.local installation with Autotools\n\nNormally, project with GNU Autotools, you can build and install to specified location, for example\n\n% ./configure --prefix=$HOME/.local\n% make\n% make install\n\n\nWhich installs the files to $HOME/.local other than commonly default /usr/local. On most distributions, you shouldnt have issues with /usr/local installation, not just the executables, but also the libraries, pkg-config, linking, they all should be configured system-wide.\n\nHowever, its not the case for user home installation, you will need to take some steps to ensure things can be found.\n\n\n1.1   pkg-config\n\nexport LD_LIBRARY_PATH=$HOME/.local/lib\nexport PKG_CONFIG_PATH=$HOME/.local/lib/pkgconfig:/usr/lib64/pkgconfig\n\n\nLD_LIBRARY_PATH makes sure any shared libraries are linked during the compilation can be found when you execute the program.\n\nPKG_CONFIG_PATH isnt for additional paths, so you still need to provide the system pkg-config locations.\n\n\n\n1.2   configure\n\nWhen startup, continues sources prefix/share/config.site, if found, prefix is either default or one you specify with --prefix. In my case, it is $HOME/.local/share/config.site and I have the following content:\n\nCPPFLAGS=-I$HOME/.local/include\nLDFLAGS=-L$HOME/.local/lib\n\n\nThey will make sure the header files can be found and linker knows there the shared libraries are stored.\n\n\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2017-02-11T18:25:00-08:00"
  },
  "headline": "C notes",
  "keywords": [
    "C",
    "installation"
  ],
  "name": "C notes",
  "url": "https://blog.yjl.im/2016/02/c-notes.html"
}
Type BlogPosting expects a property publisher.
{
  "id": "_:b5",
  "type": "BlogPosting",
  "articleBody": "\n\nNote\n\nBecause I wrote a super long description for this video, I had to split this part out and put it on my blog, or YouTube would tell me my description is too long, which I totally agreed.\n\n\n\n\n\n\n\nEveryday I will do these for my channel\n\n\n\t1   Making the video\n\t2   Choosing one to make\n\t3   Searching for new projects\n\n\n\n\n1   Making the video\n\nNormally, this is the last one, but for the video, I bumped it up to first.\n\n\n\t\n\tMy record scripts\n\n\t\n\t\t\n\t\tsetup-record.sh\n\n\t\tSetting up terminal window for 1280x720 recording region, and adjust my primarily tmux window, so they wont overlay one on another, but this one for Raincat doesnt need a terminal window.\n\t\t\n\t\t\n\t\trecord.sh\n\n\t\tIt records the video. I will choose the FPS, sometimes I need to change the size.\n\t\t\n\t\t\n\t\tre-encode.sh and merge.sh\n\n\t\trecord.sh records raw images if not with audio, so the raw video needs to be re-encoded before uploading to YouTube. If I record multiple parts, I need to merge them into one.\n\t\t\n\t\t\n\t\tgrabbing a screenshot for video thumbnail, typically the title screen if any.\n\t\t\n\t\n\t\n\t\n\tWriting the description\n\n\t\n\t\ttitling the video\n\t\tcollecting information about the project, the version, programming language and major dependencies, author, license, etc\n\t\tchecking out links, RTFM again, etc.\n\t\tputting all stuff together and write\n\t\n\t\n\t\n\tMaking a thumbnail\n\n\tIf the screenshot already has the title in it, then just use it; if not, put a text overlay on it.\n\t\n\t\n\tUploading the video\n\n\t\n\t\ttagging the video\n\t\tadding to appropriate playlists\n\t\tturning on monetization, set up record date\n\t\tre-reading my description\n\t\tdouble checking everything\n\t\tpushing the publish button\n\t\tchecking YouTube video manager, just to be sure\n\t\n\t\n\n\n\n\n2   Choosing one to make\n\nThere are good and suitable projects, but sometimes I dont have one in my queue list. It normally would be one I like and it has good and necessary stuff to show on video.For example, someone asked me for a video for online casinos. Since I also play sometimes, I was interested in that, so I will tell you my thought process. Before you do any planning you need to do deep research about the subject. I won't get into programming part, just the theory of what the best online casinos have in common. First, you need to research what online casinos have the highest rankings from the players, have legitimate certificates and are safe for playing. You don't want to deposit in suspicious sites and lose your money. Then you need to find which casino offers most variety of your preferred game. Next is the option to play on mobile devices since many of you want to play from their phones or tablets. And the last one is the online casino bonuses, which can make a huge difference in your profit. For this point, I suggest you checking aunodeposit.com where you can find the best bonuses from all popular casinos. \n\n\n\n3   Searching for new projects\n\nI mostly search in GitHub:\n\n\n\tgh-trend.py: it searches GitHub trending projects within the programming languages that I am interested in.\n\tsearch results with my user script and user style for GitHub. I search for specific keywords every day, with help from my user script and style, I can quickly go through without clicking on things I wont be interested or already checked.\n\n\nI also search with Google Image.\n\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2016-02-10T18:52:00-08:00"
  },
  "headline": "How I make a video for my YouTube channel",
  "keywords": [
    "READYT",
    "recording",
    "YouTube"
  ],
  "name": "How I make a video for my YouTube channel",
  "url": "https://blog.yjl.im/2016/02/how-i-make-video-for-my-youtube-channel.html"
}
Type BlogPosting expects a property author.
{
  "id": "_:b5",
  "type": "BlogPosting",
  "articleBody": "\n\nNote\n\nBecause I wrote a super long description for this video, I had to split this part out and put it on my blog, or YouTube would tell me my description is too long, which I totally agreed.\n\n\n\n\n\n\n\nEveryday I will do these for my channel\n\n\n\t1   Making the video\n\t2   Choosing one to make\n\t3   Searching for new projects\n\n\n\n\n1   Making the video\n\nNormally, this is the last one, but for the video, I bumped it up to first.\n\n\n\t\n\tMy record scripts\n\n\t\n\t\t\n\t\tsetup-record.sh\n\n\t\tSetting up terminal window for 1280x720 recording region, and adjust my primarily tmux window, so they wont overlay one on another, but this one for Raincat doesnt need a terminal window.\n\t\t\n\t\t\n\t\trecord.sh\n\n\t\tIt records the video. I will choose the FPS, sometimes I need to change the size.\n\t\t\n\t\t\n\t\tre-encode.sh and merge.sh\n\n\t\trecord.sh records raw images if not with audio, so the raw video needs to be re-encoded before uploading to YouTube. If I record multiple parts, I need to merge them into one.\n\t\t\n\t\t\n\t\tgrabbing a screenshot for video thumbnail, typically the title screen if any.\n\t\t\n\t\n\t\n\t\n\tWriting the description\n\n\t\n\t\ttitling the video\n\t\tcollecting information about the project, the version, programming language and major dependencies, author, license, etc\n\t\tchecking out links, RTFM again, etc.\n\t\tputting all stuff together and write\n\t\n\t\n\t\n\tMaking a thumbnail\n\n\tIf the screenshot already has the title in it, then just use it; if not, put a text overlay on it.\n\t\n\t\n\tUploading the video\n\n\t\n\t\ttagging the video\n\t\tadding to appropriate playlists\n\t\tturning on monetization, set up record date\n\t\tre-reading my description\n\t\tdouble checking everything\n\t\tpushing the publish button\n\t\tchecking YouTube video manager, just to be sure\n\t\n\t\n\n\n\n\n2   Choosing one to make\n\nThere are good and suitable projects, but sometimes I dont have one in my queue list. It normally would be one I like and it has good and necessary stuff to show on video.For example, someone asked me for a video for online casinos. Since I also play sometimes, I was interested in that, so I will tell you my thought process. Before you do any planning you need to do deep research about the subject. I won't get into programming part, just the theory of what the best online casinos have in common. First, you need to research what online casinos have the highest rankings from the players, have legitimate certificates and are safe for playing. You don't want to deposit in suspicious sites and lose your money. Then you need to find which casino offers most variety of your preferred game. Next is the option to play on mobile devices since many of you want to play from their phones or tablets. And the last one is the online casino bonuses, which can make a huge difference in your profit. For this point, I suggest you checking aunodeposit.com where you can find the best bonuses from all popular casinos. \n\n\n\n3   Searching for new projects\n\nI mostly search in GitHub:\n\n\n\tgh-trend.py: it searches GitHub trending projects within the programming languages that I am interested in.\n\tsearch results with my user script and user style for GitHub. I search for specific keywords every day, with help from my user script and style, I can quickly go through without clicking on things I wont be interested or already checked.\n\n\nI also search with Google Image.\n\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2016-02-10T18:52:00-08:00"
  },
  "headline": "How I make a video for my YouTube channel",
  "keywords": [
    "READYT",
    "recording",
    "YouTube"
  ],
  "name": "How I make a video for my YouTube channel",
  "url": "https://blog.yjl.im/2016/02/how-i-make-video-for-my-youtube-channel.html"
}
Type BlogPosting expects a property image.
{
  "id": "_:b5",
  "type": "BlogPosting",
  "articleBody": "\n\nNote\n\nBecause I wrote a super long description for this video, I had to split this part out and put it on my blog, or YouTube would tell me my description is too long, which I totally agreed.\n\n\n\n\n\n\n\nEveryday I will do these for my channel\n\n\n\t1   Making the video\n\t2   Choosing one to make\n\t3   Searching for new projects\n\n\n\n\n1   Making the video\n\nNormally, this is the last one, but for the video, I bumped it up to first.\n\n\n\t\n\tMy record scripts\n\n\t\n\t\t\n\t\tsetup-record.sh\n\n\t\tSetting up terminal window for 1280x720 recording region, and adjust my primarily tmux window, so they wont overlay one on another, but this one for Raincat doesnt need a terminal window.\n\t\t\n\t\t\n\t\trecord.sh\n\n\t\tIt records the video. I will choose the FPS, sometimes I need to change the size.\n\t\t\n\t\t\n\t\tre-encode.sh and merge.sh\n\n\t\trecord.sh records raw images if not with audio, so the raw video needs to be re-encoded before uploading to YouTube. If I record multiple parts, I need to merge them into one.\n\t\t\n\t\t\n\t\tgrabbing a screenshot for video thumbnail, typically the title screen if any.\n\t\t\n\t\n\t\n\t\n\tWriting the description\n\n\t\n\t\ttitling the video\n\t\tcollecting information about the project, the version, programming language and major dependencies, author, license, etc\n\t\tchecking out links, RTFM again, etc.\n\t\tputting all stuff together and write\n\t\n\t\n\t\n\tMaking a thumbnail\n\n\tIf the screenshot already has the title in it, then just use it; if not, put a text overlay on it.\n\t\n\t\n\tUploading the video\n\n\t\n\t\ttagging the video\n\t\tadding to appropriate playlists\n\t\tturning on monetization, set up record date\n\t\tre-reading my description\n\t\tdouble checking everything\n\t\tpushing the publish button\n\t\tchecking YouTube video manager, just to be sure\n\t\n\t\n\n\n\n\n2   Choosing one to make\n\nThere are good and suitable projects, but sometimes I dont have one in my queue list. It normally would be one I like and it has good and necessary stuff to show on video.For example, someone asked me for a video for online casinos. Since I also play sometimes, I was interested in that, so I will tell you my thought process. Before you do any planning you need to do deep research about the subject. I won't get into programming part, just the theory of what the best online casinos have in common. First, you need to research what online casinos have the highest rankings from the players, have legitimate certificates and are safe for playing. You don't want to deposit in suspicious sites and lose your money. Then you need to find which casino offers most variety of your preferred game. Next is the option to play on mobile devices since many of you want to play from their phones or tablets. And the last one is the online casino bonuses, which can make a huge difference in your profit. For this point, I suggest you checking aunodeposit.com where you can find the best bonuses from all popular casinos. \n\n\n\n3   Searching for new projects\n\nI mostly search in GitHub:\n\n\n\tgh-trend.py: it searches GitHub trending projects within the programming languages that I am interested in.\n\tsearch results with my user script and user style for GitHub. I search for specific keywords every day, with help from my user script and style, I can quickly go through without clicking on things I wont be interested or already checked.\n\n\nI also search with Google Image.\n\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2016-02-10T18:52:00-08:00"
  },
  "headline": "How I make a video for my YouTube channel",
  "keywords": [
    "READYT",
    "recording",
    "YouTube"
  ],
  "name": "How I make a video for my YouTube channel",
  "url": "https://blog.yjl.im/2016/02/how-i-make-video-for-my-youtube-channel.html"
}
Type BlogPosting expects a property publisher.
{
  "id": "_:b6",
  "type": "BlogPosting",
  "articleBody": "\nI was doing my thing when Not Ready To Make Nice (2006) came up, which won 3 categories of 49th Grammy Awards in 2007, Record of the Year, Song of the Year, and Best Country Performance by a Duo or Group with Vocal.\n\nLast time I listened to this song was years ago and I really had forgot about it. Now listening to it without checking out the MV, I still remembered some smearing actions.\n\n\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2016-02-09T21:31:00-08:00"
  },
  "headline": "SotD: Not Ready To Make Nice by Dixie Chicks",
  "keywords": [
    "2000s",
    "country music",
    "Grammy Award",
    "pop music",
    "Song of the Day"
  ],
  "name": "SotD: Not Ready To Make Nice by Dixie Chicks",
  "schema:thumbnailUrl": "https://img.youtube.com/vi/pojL_35QlSI/default.jpg",
  "url": "https://blog.yjl.im/2016/02/sotd-not-ready-to-make-nice-by-dixie.html"
}
Type BlogPosting expects a property author.
{
  "id": "_:b6",
  "type": "BlogPosting",
  "articleBody": "\nI was doing my thing when Not Ready To Make Nice (2006) came up, which won 3 categories of 49th Grammy Awards in 2007, Record of the Year, Song of the Year, and Best Country Performance by a Duo or Group with Vocal.\n\nLast time I listened to this song was years ago and I really had forgot about it. Now listening to it without checking out the MV, I still remembered some smearing actions.\n\n\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2016-02-09T21:31:00-08:00"
  },
  "headline": "SotD: Not Ready To Make Nice by Dixie Chicks",
  "keywords": [
    "2000s",
    "country music",
    "Grammy Award",
    "pop music",
    "Song of the Day"
  ],
  "name": "SotD: Not Ready To Make Nice by Dixie Chicks",
  "schema:thumbnailUrl": "https://img.youtube.com/vi/pojL_35QlSI/default.jpg",
  "url": "https://blog.yjl.im/2016/02/sotd-not-ready-to-make-nice-by-dixie.html"
}
Type BlogPosting expects a property image.
{
  "id": "_:b6",
  "type": "BlogPosting",
  "articleBody": "\nI was doing my thing when Not Ready To Make Nice (2006) came up, which won 3 categories of 49th Grammy Awards in 2007, Record of the Year, Song of the Year, and Best Country Performance by a Duo or Group with Vocal.\n\nLast time I listened to this song was years ago and I really had forgot about it. Now listening to it without checking out the MV, I still remembered some smearing actions.\n\n\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2016-02-09T21:31:00-08:00"
  },
  "headline": "SotD: Not Ready To Make Nice by Dixie Chicks",
  "keywords": [
    "2000s",
    "country music",
    "Grammy Award",
    "pop music",
    "Song of the Day"
  ],
  "name": "SotD: Not Ready To Make Nice by Dixie Chicks",
  "schema:thumbnailUrl": "https://img.youtube.com/vi/pojL_35QlSI/default.jpg",
  "url": "https://blog.yjl.im/2016/02/sotd-not-ready-to-make-nice-by-dixie.html"
}
Type BlogPosting expects a property publisher.
{
  "id": "_:b7",
  "type": "BlogPosting",
  "articleBody": "\nThis is notes for me to remember how to use GHC and Cabal to install and remove stuff I install.\n\n\nContents\n\n\n\t1   Rant, first\n\t2   Cabal sandbox\n\t\n\t\t2.1   Installing\n\t\t2.2   Uninstalling\n\t\n\t\n\n\n\n\n1   Rant, first\n\nI know nothing about Haskell, but so far, after going through pages, I think its safe to say there is no such thing in Haskell world as package management, at least for GHC (Glasgow Haskell Compiler). You can install package using Cabal, but uninstall is a pain-in-the-ass, I thought Perl is annoying.\n\nYou can --unregister a package with ghc-pkg library package, not one installs executable but none of the actual library files are removed, you have to manually remove them or find some scripts to help you. And there is no --uninstall in Cabal, even it does install package for you.\n\nBoth ghc-pkg and Cabal are simply not package managers.\n\nSo, if your system package manager has Haskell packages, use it to install and uninstall system-wide. If you insist to install at user home or other places, then use Cabal sandbox. Or you can just remove the ~/.ghc and ~/.cabal once they have got too many junks, and start over.\n\n\n\n2   Cabal sandbox\n\n\n2.1   Installing\n\n% SANDBOX=/path/to/somewhere\n% export PATH=\"$SANDBOX/.cabal-sandbox/bin:$PATH\"\n% mkdir -p \"$SANDBOX\"\n% cd \"$SANDBOX\"\n% cabal sandbox init\n% cabal install <package|path>\n% <command>\n\n\nI would suggestion just cd /tmp and use there as sandbox location. It will work well with uninstalling, that is to sandbox delete on /tmp. And if you use tmpfs on /tmp, you dont even need to bother cleaning up..\n\n\n\n2.2   Uninstalling\n\n% rm -rf \"$SANDBOX\"\n# cd \"$SANDBOX\" && cabal sandbox delete  # $SANDBOX still exists\n\n\n\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2016-02-09T19:57:00-08:00"
  },
  "headline": "GHC and Cabal notes",
  "keywords": [
    "Cabal",
    "GHC",
    "Haskell"
  ],
  "name": "GHC and Cabal notes",
  "url": "https://blog.yjl.im/2016/02/ghc-and-cabal-notes.html"
}
Type BlogPosting expects a property author.
{
  "id": "_:b7",
  "type": "BlogPosting",
  "articleBody": "\nThis is notes for me to remember how to use GHC and Cabal to install and remove stuff I install.\n\n\nContents\n\n\n\t1   Rant, first\n\t2   Cabal sandbox\n\t\n\t\t2.1   Installing\n\t\t2.2   Uninstalling\n\t\n\t\n\n\n\n\n1   Rant, first\n\nI know nothing about Haskell, but so far, after going through pages, I think its safe to say there is no such thing in Haskell world as package management, at least for GHC (Glasgow Haskell Compiler). You can install package using Cabal, but uninstall is a pain-in-the-ass, I thought Perl is annoying.\n\nYou can --unregister a package with ghc-pkg library package, not one installs executable but none of the actual library files are removed, you have to manually remove them or find some scripts to help you. And there is no --uninstall in Cabal, even it does install package for you.\n\nBoth ghc-pkg and Cabal are simply not package managers.\n\nSo, if your system package manager has Haskell packages, use it to install and uninstall system-wide. If you insist to install at user home or other places, then use Cabal sandbox. Or you can just remove the ~/.ghc and ~/.cabal once they have got too many junks, and start over.\n\n\n\n2   Cabal sandbox\n\n\n2.1   Installing\n\n% SANDBOX=/path/to/somewhere\n% export PATH=\"$SANDBOX/.cabal-sandbox/bin:$PATH\"\n% mkdir -p \"$SANDBOX\"\n% cd \"$SANDBOX\"\n% cabal sandbox init\n% cabal install <package|path>\n% <command>\n\n\nI would suggestion just cd /tmp and use there as sandbox location. It will work well with uninstalling, that is to sandbox delete on /tmp. And if you use tmpfs on /tmp, you dont even need to bother cleaning up..\n\n\n\n2.2   Uninstalling\n\n% rm -rf \"$SANDBOX\"\n# cd \"$SANDBOX\" && cabal sandbox delete  # $SANDBOX still exists\n\n\n\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2016-02-09T19:57:00-08:00"
  },
  "headline": "GHC and Cabal notes",
  "keywords": [
    "Cabal",
    "GHC",
    "Haskell"
  ],
  "name": "GHC and Cabal notes",
  "url": "https://blog.yjl.im/2016/02/ghc-and-cabal-notes.html"
}
Type BlogPosting expects a property image.
{
  "id": "_:b7",
  "type": "BlogPosting",
  "articleBody": "\nThis is notes for me to remember how to use GHC and Cabal to install and remove stuff I install.\n\n\nContents\n\n\n\t1   Rant, first\n\t2   Cabal sandbox\n\t\n\t\t2.1   Installing\n\t\t2.2   Uninstalling\n\t\n\t\n\n\n\n\n1   Rant, first\n\nI know nothing about Haskell, but so far, after going through pages, I think its safe to say there is no such thing in Haskell world as package management, at least for GHC (Glasgow Haskell Compiler). You can install package using Cabal, but uninstall is a pain-in-the-ass, I thought Perl is annoying.\n\nYou can --unregister a package with ghc-pkg library package, not one installs executable but none of the actual library files are removed, you have to manually remove them or find some scripts to help you. And there is no --uninstall in Cabal, even it does install package for you.\n\nBoth ghc-pkg and Cabal are simply not package managers.\n\nSo, if your system package manager has Haskell packages, use it to install and uninstall system-wide. If you insist to install at user home or other places, then use Cabal sandbox. Or you can just remove the ~/.ghc and ~/.cabal once they have got too many junks, and start over.\n\n\n\n2   Cabal sandbox\n\n\n2.1   Installing\n\n% SANDBOX=/path/to/somewhere\n% export PATH=\"$SANDBOX/.cabal-sandbox/bin:$PATH\"\n% mkdir -p \"$SANDBOX\"\n% cd \"$SANDBOX\"\n% cabal sandbox init\n% cabal install <package|path>\n% <command>\n\n\nI would suggestion just cd /tmp and use there as sandbox location. It will work well with uninstalling, that is to sandbox delete on /tmp. And if you use tmpfs on /tmp, you dont even need to bother cleaning up..\n\n\n\n2.2   Uninstalling\n\n% rm -rf \"$SANDBOX\"\n# cd \"$SANDBOX\" && cabal sandbox delete  # $SANDBOX still exists\n\n\n\n",
  "schema:datePublished": {
    "type": "xsd:dateTime",
    "@value": "2016-02-09T19:57:00-08:00"
  },
  "headline": "GHC and Cabal notes",
  "keywords": [
    "Cabal",
    "GHC",
    "Haskell"
  ],
  "name": "GHC and Cabal notes",
  "url": "https://blog.yjl.im/2016/02/ghc-and-cabal-notes.html"
}
url expects Url, instead got string.
{
  "id": "_:b8",
  "type": "WebSite",
  "alternateName": "YJL's Blog",
  "name": "YJL",
  "potentialAction": {
    "id": "_:b9",
    "type": "SearchAction",
    "query-input": "required name=search_term_string",
    "target": "//p/custom-search.html?q={search_term_string}"
  },
  "url": "/"
}
and 15 more.
We detected Schema.org items on your webpage, but there are some errors. Test your structured data using the Rich Results Testing Tool.

Schema.org is a set of vocabularies used to add meaning to the information on a webpage in a way that is readable by machines (Google).

These vocabularies include attributes for entities, relationships between entities and actions.

Schema.org markup can be added to a page using many different encodings, including RDFa, Microdata and JSON-LD.

Learn more in Google's intro to structured data.

Open Graph Protocol

Missing 'og:type'

Missing 'og:image'

'og:url' must be an absolute url

YJL

You Just Lost?

Tag
og:url /
og:title YJL
og:description You Just Lost?
We detected open graph tags on your webpage, but there are some errors that should be fixed.

Facebook developed the Open Graph protocol to enable the integration of any web page with its social media platform. Other social media platforms have also adopted the protocol, allowing you to control how your web pages are presented when shared across social media.

Check out Facebook's Guide to Sharing for Webmasters to learn how to add Open Graph tags.

Use the Sharing Debugger to check what information appears when shared on Facebook and the Twitter Cards Validator to do the same for Twitter.

Twitter Card

We didn't detect any Twitter Card tags on your webpage

Twitter Cards are designed to give users a rich media experience whenever a tweet contains links to a site's content. Twitter has various card types that can show content previews, play videos and increase traffic to your website.

Check out Twitter's Guide to learn how to add Twitter Cards.

Use the validator to check what information will appear when something is shared on Twitter.

Microformats

We didn't detect any microformat items on your webpage

Designed for humans first and machines second, microformats use code (HTML/XHTML tags) originally intended for other purposes to add context to the content on a webpage. This helps machines (like Google!) to understand certain information (contact information, geographic coordinates, calendar events, etc.) intended for humans.

Security

Email Privacy

Good, no email address has been found in plain text.

We don’t recommend adding plain text/linked email addresses to your webpages, as malicious bots scrape the web in search of email addresses to spam. Instead, consider using a contact form.

Hide email addresses to avoid being spammed

SSL Secure

Great, your website is SSL secured (HTTPS).

Your website's URLs redirect to HTTPS pages.

Your headers are not properly set up to use HSTS.

Renew your SSL certificate now, it expires in 9 days.

The certificate issuer is cPanel, Inc..

Modern websites tend to be SSL secured (HTTPS) as it provides an extra security layer while logging in to your Web Service. In 2014, Google announced that an HTTPS (vs HTTP) website would receive an extra boost in their ranking.

While switching to HTTPS, make sure your site remains optimized and see to it that your website will still run quickly. Follow these best practices for a smooth transition:
  • Use a serious issuer to purchase your SSL certificate
  • Redirect all of your HTTP pages to the HTTPS version of your website
  • Use HTTP Strict Transport Security (HSTS) in your headers
  • Renew your SSL certificate every year, before it expires
  • Make sure that all of your content (CSS, etc.) is linked to HTTPS
  • Update your XML sitemap to ensure the URLs include HTTPS and update the robots.txt file to reference this version
  • Register the HTTPS website in Google & Bing Search Console/Webmaster Tools

Performance

Asset Minification

Perfect, all your assets are minified.

Great! We didn't find unminified assets on your web page.

To learn more on how to minification helps a website, read our guide to minification.

Asset Compression

30%    30%

You could reduce 70% (26.1 KiB) by compressing the asset(s) listed below.

URL Reduction size
https://blog.yjl.im/ 26.1 KiB (70%)
Fast websites make happy visitors. It is very important to lower the load time of your web pages as much as possible for a better user experience. Compressing assets like images, javascript and CSS files will save bandwidth which results in a better page load time.

To learn more on how to enable compression for your assets, or consult our guide on compression.

Asset Cacheability

Perfect, all your assets are cached.

Great! We didn't find uncached assets on your web page.
Enabling caching for your website makes your site load faster for repeat visitors.

To learn more on how to make your website faster, check out these tips to decrease page load time.

Technologies

Server Uptime

Upgrade now and get notified when yjl.im goes down.
Free Trial

Server IP

185.123.95.137

Your server's IP address has little impact on your SEO. Nevertheless, try to host your website on a server which is geographically close to your visitors. Search engines take the geolocation of a server into account as well as the server speed.

Use DNSstuff for comprehensive reports on your server.

Technologies

Get to know the technologies used for your website. Some codes might slow down your website. Ask your webmaster to take a look at this.

Analytics

We didn't detect an analytics tool installed on this website.

Web analytics let you measure visitor activity on your website. You should have at least one analytics tool installed, but It can also be good to install a second in order to cross-check the data.

Popular Analytics Tools Include: Google Analytics, Quantcast™, AdobeAnalytics™, Piwik™, chartbeat™, Clicky™, ClickTale™, etc.

Doctype

HTML5

The Doctype is used to instruct web browsers about the document type being used. For example, what version of HTML the page is written in.

Declaring a doctype helps web browsers to render content correctly.

Encoding

Great, language/character encoding is specified: utf8

Specifying language/character encoding can prevent problems with the rendering of special characters.

Branding

URL

yjl.im

Length: 3 character(s)

Keep your URLs short and clean and avoid long domain names when possible.

A descriptive URL is better recognized by search engines. A user should be able to look at the address bar and make an accurate guess about the content of the page before reaching it (e.g., http://www.mysite.com/en/products).

Keep in mind that URLs are also an important part of a comprehensive SEO strategy. Use clean URLs to make your site more "crawlable" by Google.

Resource: Search for a good domain name. If no good names are available, consider a second hand domain. To prevent brand theft, you might consider trademarking your domain name.

Favicon

Great, your website has a favicon.

Favicons are the small icons that represent a website, company and/or brand. They can be displayed (among other instances) in browser tabs or bookmarks. Google also displays favicons in a page's search snippet in mobile search results.

You can see how your site's favicon appears in search results in the Google Preview above.

Make sure your favicon is consistent with your brand to help improve visibility.
Add a Favicon

Custom 404 Page

Your website does not have a custom 404 Error Page.

Your server responded with the HTTP status code: 404

404 error pages are displayed when the page you are trying to open can't be found on the site's server for a variety of reasons.

It looks like yjl.im doesn't have a customized 404 error page. This makes your site less user friendly. Generic 404 error pages strand users on a page with no links or suggestions of what to do next.

Use a custom 404 page to reduce customer frustration and link to other pages on your site. Make sure it returns the 404 http status code.

Customize the 404 error page

Domain

Domain Availability

Domains Status
yjl.com Expires a year ago
yjl.net Expires 2 years ago
yjl.org Available. Register it now!
yjl.info Expires a year ago
yjl.biz Available. Register it now!
yjl.eu This domain is booked

Register the various extensions of your domain to protect your brand from cybersquatters.

Typo Availability

Domains Status
yjp.im Available. Register it now!
yjjl.im Available. Register it now!
6jl.im Available. Register it now!
yul.im This domain is booked
ujl.im Available. Register it now!
yjo.im Available. Register it now!
yjll.im Available. Register it now!
and 1 more.

Register the various typos of your domain to protect your brand from cybersquatters.

Off-Page

Traffic

Mobile visits

Upgrade to see the number of monthly visits from mobile users.
Free Trial

Google Analytics

Sessions

Upgrade to sync your Google Analytics account and find significant metrics like:
  • Traffic Source
  • Source Domains
  • Pageviews and more!
Free Trial

Local

Local Directories

Upgrade to see the latest reviews of yjl.im in local directories
Free Trial

Social Profiles

Facebook Page

We couldn't find a Facebook page for yjl.im defined in your structured data.

Facebook is a vital channel for any business' digital marketing. Almost every Millennial expects you to have a presence on Facebook.

Use Facebook Insights to measure and track your audience's engagement with your posts to get the most out of your social media efforts. Link your Facebook profile with yjl.im and add a CTA to really maximize your social media marketing efforts.

Twitter Account

URL
Name
yjl
Followers
2
Tweets
0
Created
8 years ago
We found a Twitter profile for your brand, but it's not linked to yjl.im. Linking your Twitter account to your website helps prevent brandjacking and can help make your social media marketing more effective. Here are a few tips to help create a Twitter promotion plan. Use Twitter Dashboard and Analytics to track and optimize your Twitter feed.
Book your brand on Twitter

LinkedIn Account

We couldn't find a LinkedIn Account for yjl.im defined in your structured data.

With 562 million users, LinkedIn is all about building networks and connections. It’s not only about who you know, but about who your connections know.
That’s the real power of LinkedIn for business: the ability to tap into existing connections and grow your brand through word-of-mouth.

Having a LinkedIn Company Page helps people learn about your business and your brand.

Facebook

Facebook Views

Upgrade to connect your Facebook Page and get in-depth insights about:
  • Views
  • Activity
  • Demographics and more!
Free Trial

Keyword Tool

Google Ranking

Upgrade to monitor yjl.im’s Google ranking for custom keywords
Free Trial