Tối ưu giao diện để blogspot chuẩn SEO - các tiêu chuẩn để web chuẩn SEO:
- Toàn trang phải có 1 thẻ H1, có thể không cần H2 nhưng nếu có H3 thì nên có H2.
- Nên có thanh điều hướng breadcrumbs
- Trang chủ, chuyên mục, bài viết cần có title và meta description
- Blog càng load nhanh càng tốt.
- Trang càng nhiều text càng tốt.
1. Tối ưu thẻ thẻ heading <h1> <h2>
Tối ưu thẻ heading cho trang chủ
<h1><a expr:href='data:blog.homepageUrl' style='display: block'>
<img expr:alt='data:title' expr:height='data:height' expr:id='data:widget.instanceId + "_headerimg"' expr:src='data:sourceUrl' expr:width='data:width' style='display: block'/>
</a></h1>
Vậy là logo đã trở thành H1 của trang rồi đó, không tin kiểm tra lại đi thì biết. Xong cái H1 của toàn trang.
Tiếp đến là thẻ H2 trong trang chủ, để có một thẻ H2 cũng rất đơn giản thôi, các bạn chỉ cần vào Bố cục --> Thân web trái --> Thêm tiện ích --> HTML/Javascript
Giờ viết một đoạn hoặc cứ thế cho thêm một cái H2 là ok. Ví dụ nhé:
<h2 style="color: black; background:none; border:none; font-size:20px;">Các bài đăng mới nhất:</h2>
<hr/>
Và nó sẽ thành như thế này:
Vào Chủ đề --> Chỉnh sửa HTML --> Tìm "Các bài đăng mới nhất:"
Ta sẽ tìm thấy đoạn này:
<b:widget-setting name='content'><h2 style="color: black; background:none; border:none; font-size:20px;">Các bài đăng mới nhất:</h2>
<hr/></b:widget-setting>
</b:widget-settings>
<b:includable id='main'>...</b:includable>
Nhấn vào chỗ ... ở <b:includable id='main'>...</b:includable> nó sẽ ra một đoạn như sau:
<b:includable id='main'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>
<b:include name='quickedit'/>
</b:includable>
Thêm đoạn Code sau vào sau thẻ <b:includable id='main'>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
Thêm </b:if> vào sau thẻ <b:include name='quickedit'/>. Cuối cùng đoạn đó sẽ thành như này:
<b:includable id='main'>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>
<b:include name='quickedit'/>
</b:if>
</b:includable>
Lưu mẫu và xem kết quả, giờ widget Các bài đăng mới nhất: nó sẽ chỉ hiện thị ở trang chủ thôi.
Để cho trang chủ nó đệp 1 tý mình cho thêm một cái hình ảnh vào ở trên <h2> và cũng để cho nó chỉ hiển thị ở trang chủ thôi. Kết quả là đây:
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5zErUOPeWcUK7MaV48FYOmSniBwdPKXzvrgZw2uTF-qed9MiktdDZWm9o7vxRE3K2aWPsQCWVtuWI3qnPLcab7ny_2d0Tjh9EvK6T_pmRUV6HIN_huTBxUB3acxkvOgHjapT3CdrVxME/s1600/banner-vui-cuoi-len.png" alt="Banner Vui cười lên" width="100%" style="margin-top: -15px;"/>
<h2 style="color: black; background:none; border:none; font-size:20px;">Các bài đăng mới nhất:</h2>
<hr/>
Vậy là trang chủ đã có thẻ H1, H2 và rất nhiều thẻ H3. Vậy là cấu trúc trang chủ đã tương đối chuẩn SEO rồi đó. Giờ chúng ta sẽ tối ưu bài viết nhé.
Tối ưu thẻ heading cho bài viết:
Bài viết trên trang sẽ hiển thị toàn bộ bên trong phần Thân web trái, do vậy chúng ta sẽ tối ưu những gì hiển thị trong phần Thân web trái để có được một bài viết chuẩn SEO nhé.
Tối ưu thẻ H1: Thẻ H1 tất nhiên sẽ là tiêu đề bài viết rồi nhỉ, nhưng mà khi kiểm tra thì tiêu đề bài viết đang là thẻ H3 cơ. Giờ chỉnh nó thành H1 nhé.
Các bạn sẽ thấy một chỗ hiển thị như này:
<b:includable id='post' var='post'>...</b:includable>
<b:if cond=’data:post.title’><h3 class=’post-title’><b:if cond=’data:post.link’><a expr:href=’data:post.link’ expr:title=’data:post.title’><data:post.title/></a><b:else/><b:if cond=’data:blog.pageType != “item”‘><a expr:href=’data:post.url’ expr:title=’data:post.title’><data:post.title/></a><b:else/><data:post.title/></b:if></b:if></h3></b:if>
<b:if cond='data:blog.pageType != "item"'>
<b:if cond='data:blog.pageType != "static_page"'>
<b:if cond='data:post.title'>
<h3 class='post-title'>
<b:if cond='data:post.link'>
<a expr:href='data:post.link' expr:title='data:post.title'><data:post.title/></a>
<b:else/>
<b:if cond='data:post.url'>
<a expr:href='data:post.url' expr:title='data:post.title'><data:post.title/></a>
<b:else/>
<data:post.title/>
</b:if></b:if></h3>
</b:if><b:else/>
<h1 class='post-title'>
<b:if cond='data:post.link'>
<a expr:href='data:post.link' expr:title='data:post.title'><data:post.title/></a>
<b:else/>
<data:post.title/>
</b:if>
</h1>
</b:if>
<b:else/>
<h1 class='post-title'>
<b:if cond='data:post.link'>
<a expr:href='data:post.link' expr:title='data:post.title'><data:post.title/></a>
<b:else/>
<data:post.title/>
</b:if>
</h1>
</b:if>
Lưu mẫu
Giờ khi chúng ta xem một bài viết thì tiêu đề bài viết đó sẽ là <h1> và ở những chỗ khác tiêu đề của nó sẽ là thẻ <h3>. F5 lại trình duyệt sau đó các bạn có thể dùng các công cụ hỗ trợ để kiểm tra thử xem ok chưa nhé.
Giờ thêm tý CSS để tiêu đề nhìn gọn hơn (để bình thường chữ hơi to):
.post h1 {
font-size: 22px;
margin-bottom: 15px;
}
Còn về thẻ H2, H3 thì khi viết bài các bạn hãy tối ưu trong bài viết nhé. Vậy là đã xong phần tối ưu cấu trúc blog cho bài viết. Tiếp đến sẽ là tối ưu cho label hay nhiều bạn gọi là chuyên mục nhé.
Tối ưu thẻ heading cho chuyên mục (label):
Vào Bố cục --> Thân web trái --> Thêm tiện ích --> HTML/Javascript
<h1>Thủ thuật Blogspot</h1>
<p>Đây là chuyên mục về thủ thuật blogspot, trong chuyên mục này các bạn có thể tìm thấy các bài viết hướng dẫn thêm mới hoặc xóa bớt một số thành phần trong blogspot, tự làm một trang blogspot theo ý mình ...</p>
<p>Hi vọng các bạn sẽ thích các bạn viết tự code blogspot của mình!</p>
<h2 style="color:black; background: none; border: none;">Sau đây là các bài viết về thủ thuật Blogspot:</h2>
<b:if cond='data:blog.url == "https://blogvuicuoilen.blogspot.com/search/label/Blogspot"'>
--> Lưu chủ đề
Chú ý: có những bạn làm y chang thấy ok nhưng lúc sau lại thấy nó không hiện ở trong label nữa mà cũng chẳng hiện ở chỗ khác. Lý do là đường dẫn của blog bị thay đổi từ https sang http. Để khắc phục, các bạn vào phần cài đặt (dưới Chủ đề) --> Cơ bản --> Chuyển hướng HTTPS --> Chuyển thành Có
2. Thêm breadcrumbs cho trang:
Vào Chủ đề --> Chỉnh sửa HTML --> Tìm thẻ <b:include data='top' name='status-message'/>
Thêm code sau dưới thẻ vừa tìm
<b:include data='posts' name='breadcrumb'/>
<b:includable id='breadcrumb' var='posts'><b:if cond='data:blog.homepageUrl != data:blog.url'><b:if cond='data:blog.pageType == "static_page"'><div class='breadcrumbs'><span><a expr:href='data:blog.homepageUrl' rel='tag'>Trang chủ</a></span> » <span><data:blog.pageName/></span></div><b:else/><b:if cond='data:blog.pageType == "item"'><!-- breadcrumb for the post page --><b:loop values='data:posts' var='post'><b:if cond='data:post.labels'><div class='breadcrumbs' xmlns:v="http://rdf.data-vocabulary.org/#"><span typeof="v:Breadcrumb"><a expr:href='data:blog.homepageUrl' rel="v:url" property="v:title">Trang chủ</a></span><b:loop values='data:post.labels' var='label'><b:if cond='data:label.isLast == "true"'>» <span typeof="v:Breadcrumb"><a expr:href='data:label.url' rel="v:url" property="v:title"><data:label.name/></a></span></b:if></b:loop>» <span><data:post.title/></span></div><b:else/><div class='breadcrumbs'><span><a expr:href='data:blog.homepageUrl' rel='tag'>Trang chủ</a></span> » <span>Unlabelled</span> » <span><data:post.title/></span></div></b:if></b:loop><b:else/><b:if cond='data:blog.pageType == "archive"'><!-- breadcrumb for the label archive page and search pages.. --><div class='breadcrumbs'><span><a expr:href='data:blog.homepageUrl'>Trang chủ</a></span> » <span>Archives for <data:blog.pageName/></span></div><b:else/><b:if cond='data:blog.pageType == "index"'><div class='breadcrumbs'><b:if cond='data:blog.pageName == ""'><span><a expr:href='data:blog.homepageUrl'>Trang chủ</a></span> » <span>All posts</span><b:else/><span><a expr:href='data:blog.homepageUrl'>Trang chủ</a></span> » <span>Chuyên mục <data:blog.pageName/></span></b:if></div></b:if></b:if></b:if></b:if></b:if></b:includable>
.breadcrumbs {Giờ các bạn hãy vào lại bài viết hay chuyên mục (label) các bạn sẽ thấy có chút khác lạ đấy.
padding:5px 5px 5px 0px;
margin: 0px 0px 15px 0px;
line-height: 1.4em;
border-bottom:1px solid gray;
}
.breadcrumbs a {
text-decoration: none;
}
Một số trường hợp các bạn không thấy thẻ <b:include data='top' name='status-message'/> các bạn tìm thẻ <b:includable id='main' var='top'>...<
Click vào chỗ ... rồi tìm thẻ <div class='blog-posts hfeed'>
Thêm <b:include data='posts' name='breadcrumb'/> vào sau thẻ <div class='blog-posts hfeed'> là OK.
Nguyên nhân bị mất thẻ <b:include data='top' name='status-message'/> là do các bạn xóa nó đi để bỏ phần hiển thị Hiển thị các bài đăng có nhãn xxxx trong Label.
3. Chỉnh sửa Tiêu dề, meta description cho Trang chủ, chuyên mục và bài viết.
<!-- Thiết lập Tiêu đề seo và meta description cho trang chủ, chuyên mục và bài viết -->Đoạn code này sẽ phân biệt hiển thị riêng title và phần mô tả cho Trang chủ, chuyên mục và bài viết. Các bạn có bao nhiêu chuyên mục thì thêm vào ngần ấy cái nhé. Nếu chưa hiểu comment mình giải thích cho.
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<title>Vui cười lên</title>
<meta content='Vui cười lên - Ngoài nghĩa là vui cười lên nhiều người còn gọi là VCL' name='description'/>
</b:if>
<b:if cond='data:blog.url == "https://blogvuicuoilen.blogspot.com/search/label/SEO"'>
<title>SEO - Content, backlink, MXH, thủ thuật</title>
<meta content='SEO - Content, backlink, MXH, thủ thuật SEO' name='description'/>
</b:if>
<b:if cond='data:blog.url == "https://blogvuicuoilen.blogspot.com/search/label/Blogspot"'>
<title>Thủ thuật Blogspot - Tổng hợp thủ thuật Blogger</title>
<meta content='Thủ thuật Blogspot - Tổng hợp thủ thuật Blogger để các bạn có thể làm được một trang như trang Vui Cười Lên' name='description'/>
</b:if>
<b:if cond='data:blog.pageType == "item"'>
<title><data:blog.pageName/> | <data:blog.title/></title>
</b:if>
Sửa Lỗi share mạng xã hội:
Phần này mình thêm vào nhé vì nhiều người gặp rùi. Khi share bài viết trên blogspot lên mạng xã hội, đôi khi nó sẽ không hiển thị ảnh Thumb chính xác hoặc không có ảnh thumb luôn. Để sửa lỗi này các bạn làm như sau:<b:include data='blog' name='all-head-content'/>
<b:if cond='data:blog.postImageUrl'>
<meta expr:content='data:blog.postImageUrl' property='og:image'/>
<b:else/>
<meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCBPxXcxU6YIhQv2rbHr_r7sI2MklFQlLx-NhfUPQQr2i5ByuRR4UJgwg7vx3Wk3Ik8slRmWnteF181pPX-KqoFC3gO2hhi86TMqqoMJi_DQwVEj1ABEPePMlsgGlmluCP3-YFtrxjQEY/s1600/Vui+cuoi+len+300+x+300.png' property='og:image'/>
</b:if>
Phân trang cho label
Hiện giờ có nhiều code phân trang nhưng mình thấy nó không tối ưu SEO lắm hơn nữa trong blogspot cũng có sẵn mục phân trang rồi nên mình nghĩ cũng không cần. Vì thế nên mình khuyên mọi người nên dùng luôn cái (Bài đăng mới hơn Bài đăng cũ hơn) trong blogspot để phân trang nhé.Sửa lại CSS cho nó cái bài đăng cũ hơn - bài đăng mới hơn đẹp một chút:
#blog-pager-newer-link a {Tiếp đến ta sẽ cho bài đăng cũ - bài đăng mới chỉ hiển thị trong label thôi (làm tương tự như tối ưu label và trang chủ ý):
color:white;
text-decoration: none;
}
#blog-pager-older-link a {
color:white;
text-decoration: none;
}
#blog-pager-newer-link, #blog-pager-older-link {
padding: 10px;
background:red;
border: 1px solid black;
border-radius: 4px;
}
Vào Chủ đề --> Chỉnh sửa HTML --> Tìm <b:includable id='nextprev'>(chỉ có 1 chỗ có cái này thôi)
Thêm <b:if cond='data:blog.searchLabel'> vào ngay dưới <b:includable id='nextprev'>
Thêm </b:if> vào trước thẻ đóng </b:includable>
Đoạn đó nó sẽ thành thế này (các bạn nhìn kỹ không có paste nhầm nhé):
<b:includable id='nextprev'>
<b:if cond='data:blog.searchLabel'><div class='blog-pager' id='blog-pager'>
<b:if cond='data:newerPageUrl'>
<span id='blog-pager-newer-link'>
<a class='blog-pager-newer-link' expr:href='data:newerPageUrl' expr:id='data:widget.instanceId + "_blog-pager-newer-link"' expr:title='data:newerPageTitle'><data:newerPageTitle/></a>
</span>
</b:if>
<b:if cond='data:olderPageUrl'>
<span id='blog-pager-older-link'>
<a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + "_blog-pager-older-link"' expr:title='data:olderPageTitle'><data:olderPageTitle/></a>
</span>
</b:if>
<b:if cond='data:mobileLinkUrl'>
<div class='blog-mobile-link'>
<a expr:href='data:mobileLinkUrl'><data:mobileLinkMsg/></a>
</div>
</b:if>
</div>
<div class='clear'/>
</b:if></b:includable>
Vậy là đã xong phần phân trang cho label. Thực ra phân trang không quan trọng lắm nhưng nó giúp người dùng nhìn thuận mắt hơn và dễ sử dụng hơn nên việc có phân trang vẫn hơn là không có phân trang phải không nào.
Tổng kết
Về phần giao diện trên cơ bản là ok rồi. Có thể nói là tương đối chuẩn SEO. Bài viết này là bài cuối cùng trong seri tự code blogspot. Hi vọng sau khi tự làm xong một trang blog các bạn đã hiểu được về cấu trúc blog, cách sửa code, cách tối ưu blog sao cho chuẩn seo và làm thế nào để giao diện blog lung linh hơn.Hi vọng các bạn thích seri bài viết này của mình, thời gian tới mình sẽ có seri bài viết về SEO, cách tối ưu để bài viết chuẩn SEO, làm sao để viết được dài, làm sao để viết được nhiều bài, làm sao để đi được nhiều backlink hay làm sao để lên top google bền vững. Hẹn gặp lại các bạn!