Giải thích thuật ngữ Direction 301 và cách áp dụng vào SEO

Trong loạt bài tiếp theo về thuật ngữ SEO lần này, chúng ta sẽ làm quen với khái niệm “Redirect 301”, thuật ngữ này còn được gọi là “301 redirect”, chuyển hướng URL.
Redirect 301 là gì?
Đây là một phương pháp rất phổ biến để giúp website của chúng ta thân thiện hơn với các công cụ tìm kiếm và giúp điều hướng người dùng.
“Redirect 301” là phương pháp chuyển hướng URL, khi người dùng truy cập vào URL này sẽ được chuyển sang URL khác. URL ở đây được hiểu như là 1 landingpage bất kỳ (category, post, tag, page, trang chủ).
Ví dụ:
Bạn truy cập vào URL1, nếu áp dụng phương pháp redirect 301 cho URL1 sang URL2 thì khi người dùng truy cập vào URL1, trình duyệt sẽ tự động đưa bạn đến landingpage có địa chỉ là URL2.
Redirect 301 dùng để làm gì?
Có rất nhiều cách để ứng dụng Redirect 301 vào thực tế nhằm điều hướng người dùng và Bot tìm kiếm theo mục đích hoặc ý đồ riêng của bạn. Thông thường chúng ta hay ứng dụng chuyển hướng tên miền vào các trường hợp phổ biến dưới đây.
Bạn muốn tạo 1 thương hiệu mới nhưng vẫn muốn giữ khách hàng cũ?
– Trường hợp thay đổi tên miền: Bạn có website A, trang này tích trữ được 1 lượng người dùng và traffic khá ổn cho công việc kinh doanh của bạn. Tuy nhiên, thương hiệu gắn liền với website này khiến bạn chưa hài lòng lắm và bạn muốn tạo/xây dựng 1 thương hiệu mới để nâng cao hiệu quả kinh doanh của bạn.
Tuy nhiên việc tạo 1 website mới sẽ khiến bạn gặp nhiều khó khăn trong việc tìm kiếm lượng người dùng và kéo traffic về site.
Redirect 301 lúc này sẽ giúp bạn chuyển được traffic từ site cũ và lượng người dùng đã biết đến website ban đầu của bạn sang site mới với thương hiệu mới.
Chú ý: Khi thay đổi tên miền (change domain) ngoài việc kết hợp direct 301 chúng ta khai báo trongGoogle Webmaster Tools thực hiện như sau: Chúng ta add cả 2 domain cũ và domain muốn chuyển sang vào Google Webmaster Tools sau đó vào biểu tượng cài đặt như hình dưới, rồi chọn: Thay đổi địa chỉ.

Khi thay đổi tên miền (change domain) ngoài việc kết hợp direct 301(click hình để xem ảnh rõ hơn)
– Trường hợp thiết kế website lại và thay đổi cấu trúc đường dẫn URL, sử dụng 301 nhằm chuyển hướng người dùng từ URL cũ về URL.(Một vài trường hợp trong SEO khi chúng ta có nội dung mới khi đó tạo page mới và xoá page cũ thì chúng ta direct 301 từ link cũ về link mới. Có thể dùng internal link để điều hướng người dùng tuỳ thuộc vào sự kiện hay nội dung của page). Bạn sử dụng direct 301 trong file .htaccess

Bạn sử dụng direct 301 trong file .htaccess
Bạn bị Ddos, bị Google phạt?
Có một số cao thủ có kinh nghiệm thường dùng Redirect 301 một cách linh hoạt để ứng phó với các trường hợp phổ biến vừa nêu trên. Trong trường hợp bị Ddos, bạn có thể Redirect 301 sang 1 tên miền khác để phục vụ vài mục đích nào đó, trước đây tôi chứng kiến vài cao thủ thường chuyển tiếp tới trang chinhphu.vn mỗi khi bị tấn công từ chối dịch vụ.
Ngoài ra, đối với vài trường hợp bị Google phạt hoặc bị dính Sanbox vì 1 lý do nào đó, bạn có thể dùng cách này để điều hướng Bot công cụ tìm kiếm vào người dùng tới 1 địa chỉ trung gian trong thời gian khắc phục sự cố.
Làm thế nào tạo redirect 301?
Có nhiều cách để chuyển hướng tên miền, và việc này cũng không có gì là phức tạp. Bạn có thể thực hiện theo 1 số cách dưới đây:
IIS Redirect
– Trong IIS, bạn click chuột phải vào file hoặc thư mục muốn di chuyển.
– Bâm vào tùy chọn “a redirection to a URL”.
– Điền tên trang đích muốn chuyển đến, VD: www.trangdich.com.
– Tích chọn “The exact url entered above” và  “A permanent redirection for this resource”.
– Click nút ‘Apply’ để thực hiện.
ColdFusion Redirect
Bạn chỉ cần điền đoạn mã sau
<.cfheader statuscode=”301″ statustext=”Moved permanently”>
<.cfheader name=”Location” value=”http://ten-web-site-can-chuyen.com”>
PHP Redirect
Hoặc bạn có thể dùng cách sau ngay trong php
<?
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: http://ten-web-site-can-chuyen” );
?>
ASP Redirect
Trong ngôn ngữ ASP, việc này có khác chút ít về cấu trúc mã nguồn:
<%@ Language=VBScript %>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,”http://ten-web-site-can-chuyen”
%>
ASP .NET Redirect
Tương tự với ASP.NET nhé các bạn:
<script runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,”http://ten-web-site-can-chuyen”);
}
</script>
JSP (Java) Redirect
Đối với các website lập trình bằng ngôn ngữ Java, chúng ta sửa như sau:
<%
response.setStatus(301);
response.setHeader( “Location”, “http://ten-web-site-can-chuyen” );
response.setHeader( “Connection”, “close” );
%>
CGI PERL Redirect
Trong Perl:
$q = new CGI;
print $q->redirect(“http://www.new-url.com/”);
Ruby on Rails Redirect
Đối với Ruby và Rails:
def old_action
headers[“Status”] = “301 Moved Permanently”
redirect_to “http://www.new-url.com/”
end
Hoặc bạn có thể làm việc này trong File .Htaccess bằng cách gõ đoạn mã sau:
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://ten-web-site-can-chuyen/$1 [R=301,L]
Lưu ý:
– Khi chuyển hướng tên miền bằng file .htaccess, bạn cần phải bật Mod Rewirte lên thì việc này mới có hiệu lực.
Trên đây là những kiến thức cơ bản về Direct 301 tham khảo thêm video của Mattcutts.


Nguồn: Se.edu.vn

Sử dụng SEO Redirection để tùy biến chuyển hướng 301 website

Trong thời gian hỗ trợ các độc giả tại trang Hỏi đáp WordPress thì mình thấy nhu cầu cần chuyển hướng truy cập từ đường dẫn cũ sang đường dẫn mới rất nhiều. Ví dụ như có bạn đổi cấu trúc đường dẫn tĩnh (permalink) trong WordPress nên sẽ cần làm tự động chuyển hướng các lượt truy cập vào đường dẫn cũ sang đường dẫn mới.
Khi tạo ra các yêu cầu chuyển hướng đường dẫn thì bạn hầu như phải dùng đến tập tin cấu hình webserver (chẳng hạn như .htaccess trong Apache) nhưng việc viết các cấu hình trong tập tin này không phải ai cũng biết.
Nhưng rất may mắn là nếu bạn đang dùng WordPress thì có thể tạo ra các yêu cầu chuyển hướng đường dẫn dễ dàng nhưng có khả năng tuỳ biến cao với plugin SEO Redirection. Và đây cũng là một trong các plugin phải dùng của thachpham.com.

Các chức năng của SEO Redirection


SEO Redirection có nhiều chức năng như:
  • Hỗ trợ 3 kiểu chuyển hướng là 301302 và 307. Nếu bạn muốn chuyển hướng vĩnh viễn thì dùng 301 nhé.
  • Hỗ trợ tuỳ chỉnh chuyển hướng dựa theo trang hoặc regular expression.
  • Có nút tạo chuyển hướng nhanh khi sửa Post/Page.
  • Theo dõi lịch sử chuyển hướng trên website.
  • Hỗ trợ wildcard redirect (*).
  • Theo dõi các trang 404 và tạo chuyển hướng từ các trang 404.
  • Tạo chuyển hướng cho trang lỗi 404.
  • Không sửa tập tin cấu hình webserver, nên nó hoạt động trên tất cả các webserver khác nhau từ Apache, NGINX đến LiteSpeed.
  • Có bản pro nhiều tính năng hơn mà bạn có thể mua tại đây. Mình vẫn sử dụng bản miễn phí và thấy rất tốt.
Đối với các tính năng trên, đặc biệt là có hỗ trợ regex nên hầu như bạn có thể tạo ra các yêu cầu chuyển hướng rồi.

Cách tạo một chuyển hướng đơn giản

Chẳng hạn bạn cần chuyển hướng từ địa chỉ http://domain.com/old-page.html sanghttp://domain.com/new-page.html thì bạn có thể tạo chuyển hướng với SEO Redirection như hình dưới đây.
Nếu bạn muốn chuyển sang một domain khác thì ở phần Redirect to bạn có thể nhập cả domain mới vào, ví dụ như http://new-domain.com/new-page.html.

Chuyển hướng nội dung trong tầng thư mục

Chẳng hạn bây giờ mình có các địa chỉ dạng http://thachpham.com/old-folder/page.html và cần chuyển hướng sang cấu trúc http://thachpham.com/new-folder/page.html thì mình sẽ tạo ra như sau:

Chuyển hướng với RegEx.


Nếu bạn đã có kiến thức về RegEx thì có thể sử dụng nó để gom các đường dẫn cần chuyển hướng dựa vào quy tắt RegEx.

Lời kết

Cách sử dụng plugin này cũng chỉ có như vậy thôi nhưng mình tin là nó sẽ giúp bạn thao tác việc chuyển hướng trong website dễ dàng hơn mà không cần phải đụng vào các tập tin cấu hình webserver nữa vì sẽ dễ gặp lỗi.
Nguồn: Thachpham.com

Thay đổi cấu trúc Permalink để giữ thứ hạng từ khóa

Các bạn đang sử dụng WordPress thì cũng đã biết rõ rằng tính năng Permalinks trong WordPress sẽ giúp chúng ta có các cấu trúc liên kết thân thiện hơn thay vì sử dụng cấu trúc liên kết động kiểuhttp://domain.com/?p=xx, thay vào đó ta có thể sử dụng cấu trúc liên kết như thachpham.com chẳng hạn bằng cách sử dụng Permalink.
Nhưng chẳng hạn bạn đang sử dụng một cấu trúc permalink nào đó mà thay đổi lại thì tất cả liên kết cũ sẽ bị lỗi 404. Điều này có nghĩa là, toàn bộ thứ hạng cũ của bạn trên các máy tìm kiếm như Google, Bing đều sẽ bị giảm thứ hạng do liên kết không tồn tại, vì nó đã đánh chỉ mục (index) dựa vào cấu trúc liên kết cũ.

Làm sao đổi cấu trúc permalink giữ nguyên thứ hạng?

Thứ hạng sẽ bị mất khi trang đó bị lỗi 404 (không tìm thấy trang), nên nếu bạn muốn giữ nguyên thứ hạng của một liên kết nào đó hoặc muốn chia sẻ thứ hạng này cho liên kết khác thì bạn phải sử dụng kỹ thuật 301 redirect (chuyển hướng vĩnh viễn).
Ví dụ trên Google mình có liên kết A đang giữ top 1 và nay mình muốn chỉ định liên kết B sẽ lên top 1 thay cho liên kết A thì mình sẽ phải sử dụng 301 redirect để chuyển hướng truy cập từ liên kết A sang liên kết B.
Nếu bạn cần chuyển hướng liên kết của một trang nào đó riêng lẻ thì có thể sử dụng tính năng 301 Redirection có trong SEO by Yoast hoặc plugin SEO Redirection mà mình đã giới thiệu.
Thế nhưng, giả sử blog bạn có 1000 bài viết có cùng cấu trúc nay bạn cần đổi cấu trúc thì không lẽ bạn làm thủ công cho 1000 bài viết đó, một giải pháp không hề dễ dàng xíu nào. Nhưng bạn đừng lo lắng, chúng ta có cách để đặt 301 redirection từ cấu trúc permalink cũ sang cấu trúc permalink mới với plugin Permalink Redirect.

Chuyển hướng permalink cũ sang permalink mới

Trước tiên bạn tải plugin Permalink Redirect về máy và cài đặt bằng cách vào Plugins -> Add New -> Upload.
Nếu bạn đã từng sử dụng tính năng Permalinks thì bạn vào phần Settings -> Permalinks sẽ thấy các cấu trúc permalink được khai báo thông qua từ khoá như thế này.
Ở phần Custom Structure, bạn sẽ thấy cấu trúc permalink hiện tại của mình. Giả sử mình sẽ cần đổi sang cấu trúc mới là /%postname%.html (đã thiết lập ở Settings) thì mình sẽ đặt redirect cho plugin Permalink Redirect như sau (Settings -> Permalink Redirect).
Và bây giờ bạn có thể thử vào cấu trúc permalink cũ sẽ thấy nó tự chuyển hướng về cấu trúc permalink mới.
Nguồn: thachpham.com

Hướng dẫn tùy biến trang quản trị web của wordpress

Trong bài đầu tiên của serie này, mình sẽ hướng dẫn các bạn sử dụng API của WordPress để tùy biến lại trang đăng nhập của WordPress, cụ thể mình sẽ lấy ví dụ đơn giản là sửa lại logo của WordPress thành logo của mình và thay đổi màu nền.

Tạo Plugin

Trước hết để dễ dàng quản lý code của mình, mình khuyên các bạn nên tự tạo plugin cho riêng mình. Trongcả serie này chúng ta sẽ tạo một plugin riêng để quản lý, trước tiên hãy vào thư mục /wp-content/plugins/ và tạo một thư mục tên là tp-custom-admin.
Trong thư mục này chúng ta sẽ có tập tin custom-admin.php và thư mục images (để chứa hình ảnh mà bạn sử dụng trong plugin). Cấu trúc như thế này:

Kế tiếp chúng ta mở tập tin custom-admin.php ra để thêm thông tin plugin vào nhé, để nó có thể hiển thị trong trang quản lý plugin.
01
02
03
04
05
06
07
08
09
<?php
/**
 * Plugin Name: TP Customize Admin Screen
 * Plugin URI: http://thachpham.com
 * Description: Tùy biến lại trang quản trị của admin.
 * Version: 1.0
 * Author: Thach Pham
 * Author URI: http://thachpham.com
 */
Và trong bài này, các code bạn sẽ viết ngay bên dưới đoạn khai báo thông tin này. Bây giờ hãy vào trang quản trị plugin mà kích hoạt plugin lên.

Tạo hàm tương tác đến trang đăng nhập

Bây giờ chúng ta sẽ khai báo một hàm sẽ chứa các đoạn code mà bạn muốn tùy biến vào trang đăng nhập, ví dụ mình có một hàm tên tp_custom_login().
01
02
03
04
05
06
07
/**
 * Thay đổi logo trang đăng nhập và đổi màu nền
 */
function tp_custom_logo() {
}
add_action('login_enqueue_scripts', 'tp_custom_logo');
Như đoạn code trên, bạn sẽ thấy chúng ta móc hàm tp_custom_logo() vào hook tênlogin_enqueue_scripts. Đây là cái hook mà nó sẽ hiển thị những gì chúng ta móc vào trong trang đăng nhập, nên chúng ta muốn thay đổi lại hình ảnh, màu sắc tức là sẽ viết thêm CSS cho trang đăng nhập nên móc vào hook này.

Thêm CSS tùy biến vào trang đăng nhập

Chúng ta đã có hàm đã khai báo ở trên rồi, bây giờ chúng ta có thể thêm bất cứ code tùy biến nào nhưng để dễ thực hành nhất chúng ta sẽ thêm CSS để đổi hình logo và màu nền cho trang đăng nhập.
Trước tiên chúng ta cần đóng code PHP lại để có thể viết CSS dễ hơn như thế này:
01
02
03
04
function tp_custom_logo() { ?>
<?php }
add_action('login_enqueue_scripts', 'tp_custom_logo');
Bây giờ chúng ta sẽ viết CSS hoặc HTML vào đoạn trống ở giữa đó nhé. Trước hết là ta sẽ thay đổi logo, bây giờ bạn ra trang đăng nhập xem cấu trúc HTML của nó thì sẽ thấy phần logo hiển thị nó nằm trong id #login.

Okay vậy bây giờ ta sẽ có đoạn CSS sau (nhớ thay lại ảnh logo của bạn nhé):
01
02
03
04
05
06
07
08
<style type="text/css">
    #login h1 a {
        background-image: url(<?php echo plugins_url('images/logo.png', __FILE__); ?>);
        background-size: 280px 80px;
        width: 280px;
        height: 80px;
    }
</style>
Ngay dòng số 3, mình có sử dụng hàm plugins_url() như sau:
01
<?php echo plugins_url('images/logo.png', __FILE__); ?>
Chỗ này nghĩa là nó sẽ in ra đường dẫn tới tập tin logo.png trong thư mục images của plugin hiện tại vì hàmplugins_url có tác dụng lấy đường dẫn của plugin, tham số __FILE__ nghĩa là lấy đường dẫn thư mục hiện tại của tập tin hiện tại.
Bây giờ kết quả ta có:
Giờ thì thêm tiếp CSS cho nó khác biệt hơn nha.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function tp_custom_logo() { ?>
    <style type="text/css">
        body {
            background: #34566f !important;
        }
        .login #nav a, .login #backtoblog a, .login label {
            color: #f3f3f3 !important;
        }
        .wp-core-ui .button-primary {
            background: #31b36b !important;
            border: none !important;
            text-shadow: none !important;
            box-shadow: none !important;
        }
        .login form {
            box-shadow: none !important;
            background: transparent !important;
        }
        #login h1 a {
            background-image: url(<?php echo plugins_url('images/logo.png', __FILE__); ?>);
            background-size: 280px 80px;
            width: 280px;
            height: 80px;
        }
    </style>
<?php }
add_action('login_enqueue_scripts', 'tp_custom_logo');
Kết quả:

Nếu như bạn muốn tự xây dựng trang đăng nhập riêng cho WordPress mà không dùng trang /wp-admin mặc định thì có thể tham khảo hướng dẫn này.

Tự đánh dấu “Remember Me”

Nếu bạn muốn nút Remember Me được đánh dấu vào mặc định để ghi nhớ lần đăng nhập sau thì có thể thêm hàm dưới đây để tùy biến nó nhé.
01
02
03
04
05
06
07
08
09
10
11
12
13
</pre>
<pre>/**
 * Tự đánh dấu vào nút Remember Me để ghi nhớ lần đăng nhập sau
 */
function tp_rememberme_check() {
    add_filter( 'login_footer', 'tp_rememberme_checked' );
}
add_action( 'init', 'tp_rememberme_check' );
function tp_rememberme_checked() {
    echo "<script>document.getElementById('rememberme').checked = true</scrip>";
}</pre>
<pre>
Okay đơn giản vậy thôi, tiếp tục ở các bài sau chúng ta sẽ tùy biến lại bên trong trang quản trị của WordPress nhé.
Nguồn: Thachpham.com