Loại bỏ /category/ trong URL của Wordpress Blog



wordpress FIXWordpress luồn là một sự lựa trọn hàng đầu cho các bạn muốn sở hữu một blog, cấu trúc đơn giản, hệ thống được tối ưu hóa tốt cho SEO. Các phần trong wordpress hầu như đều được tối ưu hóa để hướng đến việc dễ dàng và tiện lợi cho người sử dụng. Đơn cữ như việc sử dụng plugin, nếu trong Joomla hoặc Drupal thì các webmaster sẽ mất khá nhiều công để ngồi chọn lựa trên các thư việc extension, rôi sau đó download về và tiến hành cài đặt, trong khi đó với wordpress chỉ cần vào control panel và search sau đó install là song. Trên hết là những phần tối ưu  hóa cho SEO được các nhà phát triển wordpress làm khá tốt, đặc biệt là khâu URL và cấu trúc trang web. Nhưng nó vẫn tồn tại một nhược điểm là trong url của phần category vẫn luôn xuất hiện một biến là /category/.

Sự xuất hiện của biến này vô hình dùng làm cho website của bạn đơn thuần chỉ là một blog, và không thể tiến lên thành một CMS thực thụ. Vì nếu để tồn tại biến /category/ này trong url, các bạn sẽ thấy ngay sự khó chịu đối với người dùng và cả search engine ở đây. Khi mà url của bài viết sẽ không có biến /category/, nhưng url của thư mục chứa bài viết lại xuất hiện biết trên. Điều này dẫn tới cấu trúc website của bạn trở nên không rõ ràng với các máy tìm kiếm khi bạn muốn phát triển SEO cho thư mục con, và gây khó khăn cho người dung khi họ muốn truy cập trực tiếp vào thư mục con mà không cần thông qua trang chủ.

Trong bài viết này SEO Vietnam sẽ hướng dẫn các bạn cách để loại bỏ hoàn toàn /category/ ra khỏi url của website làm bằng wordpress. Hy vọng rằng nó sẽ giúp nhiều cho các bạn hơn trong việc phát triển SEO cho webiste của mình.

Cách 1: Can thiệp vào file functions.php

Các bạn vào file functions.php và thêm đoạn code này vào, hoặc có thể đính kèm nó vào file của 1 plugin nào đó:

 

function fix_slash( $string, $type )
{
global $wp_rewrite;
if ( $wp_rewrite->use_trailing_slashes == false )
{
if ( $type != 'single' && $type != 'category' )
return trailingslashit( $string );
 
if ( $type == 'single' && ( strpos( $string, '.html/' ) !== false ) )
return trailingslashit( $string );
 
if ( $type == 'category' && ( strpos( $string, 'category' ) !== false ) )
{
$aa_g = str_replace( "/category/", "/", $string );
return trailingslashit( $aa_g );
}
if ( $type == 'category' )
return trailingslashit( $string );
}
return $string;
}
 
add_filter( 'user_trailingslashit', 'fix_slash', 55, 2 );

 

Cách 2: Sử dụng .htaccess để điều hướng

Bản thân mình luôn sử dụng cách này để sử lý /category/ vì nếu sử dụng cách 1 có thể sẽ gây một số ảnh hưởng đến phần code của website. Vả lại .htaccess sử dụng 301 redirect nên hoàn toàn có thể áp dụng cho tất cả các website dù là mới hay cũ.

Thêm đoạn code sau vào file .htaccess là song:

 

RedirectMatch 301 ^/category/(.+)$ http://www.seovietnam.org/$1
# OR
RewriteRule ^category/(.+)$ http://www.seovietnam.org/$1 [R=301,L]

 

Nhớ sửa lại domain cho đúng nhá ^^

DEMO: Truyện Cười

Minh Đại - SEO Việt Nam


Bình Luận  

+1Beetbe2009-10-11 14:16#
Cách một là stupid, cách 2 cũng không hợp lý

Bạn có thể cấu hình Customize URL Structure của Wordpress trong phần Settings, có thể bỏ %category% đi nếu bạn không muốn nó xuất hiện
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0SEO2009-10-12 08:28#
Hình như bạn không hiểu rõ vấn đề ở đây. Vấn đề là mình muốn URL của category không xuất hiện biến /category/ chứ không phải là url của bài viết trong wordpress.

Nếu để cấu hình mặc định thì url của 1 category có tên là Tiểu Phẩm trên website truyencuoitieulam.com sẽ là:

http://www.truyencuoitieulam.com/category/tieu-pham/

Và mục đích của bài viết này là hướng dẫn các bạn điều hướng url về

http://www.truyencuoitieulam.com/tieu-pham/

Như vậy nhìn URL sẽ đẹp hơn và dễ nhớ hơn.

Cách 1: Áp dụng trong trường hợp wordpress chạy trên server Windows (server này không hỗ trợ .htaccess). Nếu bạn có cách nào hay hơn thì hãy góp ý nhé, cách của mình cũng không stupid lắm đâu (không phải blogger nào cũng pro về code )

Lưu ý: Nên hiểu rõ vấn đề trước khi comment, để tránh những trường hợp lạc đề như thế này. Thanks
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0doanduyvuong2009-10-22 04:54#
thêm đoạn code ở file fonctions.php vào chỗ nào vậy bác ơi . thanks bác nhiếu nhé
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
+1SEO2009-10-22 06:49#
Trong file funtions.php thêm vào đâu cũng được, chỉ cần đúng cú pháp 1 chút.

Nên sử dụng cách 2 trong trường hợp này/
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0duytan2009-11-16 12:49#
có thể thiết lập trong wp-admin/options-permalink.php khỏi phải sợ xung đột code hay lỗi .htaccess. Mình thử 2 cách trên mà chẳng được. Bây giờ link category của mình sẽ là http://www.xemphim.tv/phim-online/phim-truyen-hinh :D
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0anhtuan2010-02-07 19:26#
HI, các bạn .
Có ai có nhu cầu cần free hosting cho blog wordpress không?
Mình hiện đang phát triển website http://blogbroad.com nhằm cung cấp hosting và quản lý blog wordpress hoàn toàn miễn phí.
Các bạn nếu có nhu cầu thì tham quan qua co biết ha, tương lai mình sẽ phát triển để support các option về SEO mạnh hơn nữa để các bạn dễ dàng tùy chỉnh.
Blog của các bạn có thể được chọn đặt trên sever VN hoặc Hà Lan tùy theo nhu cầu nội dung cần chia sẽ.
Website URL là: http://blogbroad.com
Nếu các bạn có ý kiến gì cần trao đổi thì phản hồi cho mình:
Cảm ơn các bạn.
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0Hai Blog dot Net2010-06-25 22:13#
Theo em thì không nên bỏ cái đó!
Lý do: để Google có thể nhận biết bài viết với categories!
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0SEO2010-07-01 18:09#
Theo anh thì nên loại nó đi, vì để giúp cho SEO tốt thì url của em phải càng ngắn càng tốt. Còn việc phân biệt giữa category & bài viết thì Google thông mình lắm, em khỏi là phải lo.
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0Huy Sois Trịnh2010-07-24 18:41#
Cái này mình nghĩ không nên bỏ đi, ví dụ một bài viết trong catergory thơ với tên là đã hơn một lần.
Thường thì khi tìm người dùng sẽ tìm là bài thơ đã hơn một lần thay vì đã hơn một lần hoặc bài hát ...., cần mua... (catergory là cần mua, cần bán), việc dùng catergory sẽ tăng tính liên quan và thân thiện với người dùng hơn !
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
+1SEO2010-08-09 17:21#
Bạn hiểu sai ý của bài viết rồi, bài này mình hứng dẫn các bạn cách loại bỏ biến mặc định là /category trong url của wordpress 2.x . Biến này xuất hiện khi bạn truy xuát vào một category của website, nên nhìn hơi dài và ko okay lắm.
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0Jen2010-08-15 09:10#
cậu bik trong wp 3.x thì làm thế nào ko. mình đang sử dụng plugin wp-no-category-base nhưng mình thích http://domain.com/name-1/ nhưng plugin thì nó ko có dấu / cuối link :D ức
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0SEO2010-08-16 18:17#
Wp 3.x thì đã loại bỏ hoàn toàn category rồi mà bạn. Bạn thử tắt cái wp-no-category-base hiện tại của bạn đi xem.
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0KLBC2010-09-03 01:52#
Wp 3.01 vẫn vậy mà, help me?
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0SEO2010-12-23 14:06#
Đính Thêm KLBC:
Wp 3.01 vẫn vậy mà, help me?


Giờ thì chỉ cần sài cái plugin no category base là okay rồi :P
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0đạt2010-12-29 01:37#
Link bài nào của mình cũng ở dạng http://chienluocnhanh.com/?p=xyz ( xyz là con số ). Như vậy là không tốt cho SEO đúng không bạn ?
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
-1SEO2010-12-31 10:47#
Không phải là không tốt, chỉ là không hỗ trợ tốt nhất mà thôi.
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0blogtapghi.com2011-01-06 21:38#
minh thay dung plugin la tot nhat
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0soivathosan2011-02-18 02:50#
anh cho em hỏi chút. em cài wordpress trên localhost. nhưng các đường url của em toàn là các ký tự dạng này
http://localhost/wordpress1/?p=1 . h em muốn nó trở thành url dạng http://localhost/wordpress1/tin tuc thì làm thế nào
rất mong được giúp đỡ
thank
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0SEO2011-03-02 17:57#
Bạn vào chỉnh trong phận permalink, chọn URL theo cấu hình bạn muốn, sau đó save lại là được.
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0Hieu Nguyen2011-02-21 16:51#
Mình đã thử cách thứ 2, thấy rất tốt. Cảm ơn bạn rất nhiều!
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0Daniel2011-06-09 08:43#
Vậy nếu áp dụng cách này thì có ảnh hưởng tới những đường link mà trước đây google index website của mình vào không ?.

Ý mình là: giờ google đang lưu http://www.lucas.edu.vn/category/hinh-anh/clb-tieng-anh.
Làm theo cách của bạn thì chỉ còn: http://www.lucas.edu.vn/hinh-anh/clb-tieng-anh

>>> Khi người dùng search web mình trên mạng thì có category nhưng khi truy cập vào không có thì dẫn ra lỗi link..

Giải thích giúp mình nhé
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0SEO2011-06-23 10:48#
Hiện tại đã có plugin hỗ trợ loại bỏ category trên wordpress. Bạn có thể search và sử dụng plugin no category base hoặc no category parent đều được.

Cái hay của wordpress là khả năng hỗ trợ 301 redirect của nó rất chi là huyền bí. Phần lớn url sau khi thay đổi cấu trúc đều có khả năng redirect về url mới.
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm
0HuuBang2011-08-24 22:29#
Trang Web của tôi đang hoạt động bình thường, nếu loại bỏ category đi thì có ảnh hưởng đến việc Seo không.
Trả Lời | Trả Lời + Đính Kèm | Đính Kèm

Thêm Bình Luận


Mã Chống Spam


Refresh