Sử dụng proxy ngược để cài đặt blog WordPress để nâng cao SEO

Proxy , SEO ,25-10-20215 phút đọc

Bạn đã bao giờ gặp phải tình huống cần có một blog trên trang web công ty hiện tại của mình mà không chạy trên WordPress chưa? Tôi chắc rằng hầu hết các bạn đã từng đối mặt với những tình huống như vậy. Trong bài viết này, bạn sẽ khám phá ra cách thực hiện mà không ảnh hưởng đến SEO. Trước khi đi sâu vào vấn đề này, chúng ta hãy cùng khám phá cách

Bạn đã bao giờ gặp phải tình huống cần có một blog trên trang web công ty hiện tại của mình mà không chạy trên WordPress chưa? Tôi chắc rằng hầu hết các bạn đều đã từng gặp phải những tình huống như vậy.

Trong bài viết này, bạn sẽ khám phá cách đạt được điều này mà không ảnh hưởng đến SEO.

Trước khi đi sâu vào vấn đề này, chúng ta hãy cùng tìm hiểu cách các tổ chức và cơ quan tận dụng việc lưu trữ blog riêng biệt với trang web chính.

Trường hợp nào bạn cần có một blog riêng biệt với trang web chính?

Nhiều doanh nghiệp lớn có hệ thống CNTT phức tạp, khiến các phòng ban nội bộ khó có thể nhìn ra ngoài phạm vi hệ thống nội bộ của họ. Ví dụ, bộ phận tiếp thị nội dung mong muốn tạo một blog để khai sáng cho đối tượng của mình. Tuy nhiên, cách sắp xếp hiện tại khiến việc tạo blog, chẳng hạn như trên dịch vụ lưu trữ WordPress, trở nên bất khả thi.

Mặt khác, các doanh nghiệp có thể sử dụng “.NET Framework” cho các ứng dụng web của họ và các công ty khác lại ngần ngại sử dụng các nền tảng nguồn mở.

Khi bạn cần lưu trữ blog trong bất kỳ trường hợp nào được liệt kê ở trên, bạn không có lựa chọn nào khác ngoài việc nghĩ đến một máy chủ thay thế để lưu trữ blog đó. Do đó, máy chủ này nằm ngoài máy chủ nơi bạn đã lưu trữ trang web của mình. Chúng ta hãy cùng xem xét một số tùy chọn này và tác động của chúng, được chứ?

Bạn có những lựa chọn nào để lưu trữ blog WordPress riêng biệt?

Lưu trữ trên một tên miền phụ

Ví dụ, nếu trang web chính của bạn có URL là www.myorganization.com, những chuyên gia có năng lực kỹ thuật nhất trong quá khứ sẽ có xu hướng cài đặt blog WordPress bằng cách mua một tên miền phụ của tên miền chính. Ví dụ trong trường hợp này, nó sẽ nằm trên ourblog.myoraginzation.com.

Ngày xưa, giải pháp này sẽ hoàn hảo. Tuy nhiên, hiện tại, khi bạn đang nhắm mục tiêu tạo ra một lượng truy cập đáng kể vào blog của mình, bạn cũng cần cân nhắc đến các khía cạnh SEO (Tối ưu hóa công cụ tìm kiếm). Chúng ta sẽ xem xét vấn đề này trong phần tiếp theo.

Tác động của việc cài đặt blog trên tên miền phụ cho SEO

Khi nào nên sử dụng tên miền phụ

Lý do chính khiến chủ sở hữu trang web mua tên miền phụ là để có nội dung riêng biệt dựa trên nhiều sản phẩm khác nhau cho thương hiệu của bạn. Mặc dù cũng có thể có những lý do khác, chẳng hạn như một trang web riêng cho thiết bị di động và thúc đẩy lưu lượng truy cập, lý do cơ bản nằm ở nội dung và mở rộng thương hiệu của bạn dựa trên một số phân khúc.

Ví dụ, Wikipedia có các tên miền phụ để phân tách nội dung dựa trên nhiều ngôn ngữ khác nhau, chẳng hạn như fr.wikipedia.com hoặc es.wikipedia.com.

NPR , một mạng lưới phát thanh phổ biến, là một ví dụ khác khi họ tập trung 100% vào tin tức và nội dung của mình. Tuy nhiên, họ cũng có một tên miền phụ, https://shop.npr.org/ , tập trung chủ yếu vào việc bán hàng. 

Vì vậy, trong các tình huống được đề cập ở trên, việc có một tên miền phụ là hợp lý. Nhưng còn trong trường hợp blog thì sao?

Tên miền phụ hay thư mục riêng cho blog?

Vâng, các công cụ tìm kiếm xem các tên miền phụ như các trang web riêng biệt. Điều này ngụ ý rằng các công cụ tìm kiếm phải thu thập và lập chỉ mục từng tên miền phụ riêng biệt. Ngoài ra, các liên kết ngược đến tên miền chính không được chia sẻ với các tên miền phụ của chúng. Do đó, việc xây dựng thứ hạng trang cho một tên miền phụ cũng khó khăn như đối với tên miền chính.

Vì vậy, sẽ hữu ích nếu bạn có các tên miền phụ trong những trường hợp cần thiết. Do đó, một lựa chọn lý tưởng trong blog là có blog như một thư mục con trên trang web chính của bạn.

Tuy nhiên, như tôi đã đề cập ở trên, làm sao bạn có thể thực hiện được điều đó trong trường hợp trang web chính của bạn đang hoạt động và khi bạn lưu trữ nó trên một nền tảng khác không hỗ trợ lưu trữ WordPress?

Đây chính xác là mục đích của Reverse Proxy và chúng tôi sẽ cung cấp cho bạn tổng quan về reverse proxy trong phần tiếp theo.

Proxy ngược và proxy tiến là gì?

Bạn sẽ dễ hiểu khái niệm proxy ngược hơn nếu biết proxy chuyển tiếp thực hiện chức năng gì.

Forward Proxy – Forward Proxy chuyển tiếp tất cả các yêu cầu đến từ tất cả các nút trong LAN (Mạng cục bộ) đến máy chủ có liên quan mà yêu cầu sẽ đến. Máy chủ đích không biết về nguồn gốc của yêu cầu và gửi phản hồi đến máy khách đã khởi tạo yêu cầu thông qua forward proxy. Sơ đồ bên dưới minh họa điều đó


Reverse Proxy: Ngược lại, Reverse Proxy nằm trước các máy chủ và gửi yêu cầu đến máy chủ chính xác khi máy khách khởi tạo yêu cầu. Sau đó, khi máy chủ phù hợp trả về phản hồi, reverse proxy sẽ trả về phản hồi cho thiết bị máy khách. Đối với thiết bị máy khách, Reverse Proxy Server sẽ xử lý tất cả các yêu cầu. Reverse Proxy lý tưởng trong các tình huống mà cùng một phần của ứng dụng web được thu nhỏ trên nhiều máy chủ khác nhau.

Để tìm hiểu thêm về proxy ngược và proxy chuyển tiếp, bạn có thể tham khảo bài viết này .

Proxy ngược trong một kịch bản WordPress

Tương tự như vậy, bạn có thể sử dụng Reverse Proxy để chuyển hướng lưu lượng truy cập đến máy chủ nơi bạn lưu trữ blog WordPress. Mặt khác, Reverse Proxy sẽ chuyển hướng lưu lượng truy cập không phải blog đến máy chủ có liên quan. Tôi biết nói thì dễ hơn làm. Vậy hãy cùng minh họa bằng một ví dụ. 


Giả sử, như thể hiện trong sơ đồ bên dưới, trang web của bạn là https://www.somedomain.com được lưu trữ trên máy chủ web không hỗ trợ WordPress. Tuy nhiên, nhóm tiếp thị nội dung của bạn đang rất muốn có một blog. Vì vậy, khi xem xét tất cả các sự kiện SEO được đề cập ở trên, nhóm phát triển Web của bạn không có lựa chọn nào khác ngoài việc cài đặt blog trong thư mục "blog". Do đó, blog, URL sẽ xuất hiện là https://www.somedoamin.com/blog.

Vì trang web chính không hỗ trợ WordPress nên sau đây là các bước mà nhóm phát triển web của bạn phải thực hiện:

  1. Liên hệ với Quản trị viên tại somedomain.com và tìm hiểu xem họ có hỗ trợ Reverse Proxy hay không.
  2. Nếu họ làm vậy, bạn có thể yêu cầu họ cấu hình Proxy ngược tại máy chủ của họ với thông tin chi tiết về nơi bạn lưu trữ blog WordPress.
  3. Song song với bước trên, bạn cũng cần tìm một máy chủ lưu trữ như Kinsta để chạy blog WordPress của mình. Blog này hiện sẽ có một địa chỉ IP riêng vì nó được lưu trữ khác với máy chủ web lưu trữ trang web chính của bạn.
  4. Bạn sẽ cần một URL cho blog này, có thể là h ttps://www.somedomain.com/blog . Vì một tên miền không thể có thư mục trong tên miền gốc nên cách tốt nhất là để tên miền phụ https://blog.somedomain.com trỏ đến máy chủ mới này.
  5. Sau đó, bạn có thể cấu hình Reverse Proxy theo cách sao cho nếu yêu cầu đến dưới dạng https://www.somedomain.com/blog , các yêu cầu đó sẽ chuyển hướng đến tên miền phụ https://blog.somedomain.com . Bước này yêu cầu bạn tạo một thư mục có tên là "blog" trong thư mục gốc của somedomain.com. Sau đó, sẽ hữu ích nếu bạn đặt tệp sau đây có tên là "web.config" với mã bên dưới.

Tạo tập tin web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <system.webServer>
  <rewrite>
   <rules>
    <rule name="blog.somedomain.com" stopProcessing="true">
     <match url=".*" />
     <conditions>
      <add input="{HTTP_HOST}" pattern="^blog.somedomain.com$" />
      <add input="{PATH_INFO}" pattern="^/blog/" negate="true" />
     </conditions>
     <action type="Rewrite" url="\blog\{R:0}" />
    </rule>
   </rules>
  </rewrite>
 </system.webServer>
</configuration>

Trong hai dòng bên dưới, “blog.somedomain.com” phải được thay thế bằng tên miền phụ nơi blog của bạn được đặt:

 <rule name="blog.somedomain.com" stopProcessing="true">
<add input="{HTTP_HOST}" pattern="^blog.somedomain.com$" />

Sau đó, trong hai dòng này, bạn có thể thay thế thư mục “blog” nếu bạn đặt tên khác cho nó:

<add input="{PATH_INFO}" pattern="^/blog/" negate="true" />
<action type="Rewrite" url="\blog\{R:0}" />

Ở bước cuối cùng, mặc dù chúng tôi đã sử dụng một tên miền phụ, nhưng nó sẽ không ảnh hưởng đến SEO vì lưu lượng truy cập sẽ được tạo ra cho thư mục blog của trang web chính. Do đó, việc Chuyển hướng đến tên miền phụ là một quy trình nội bộ sẽ không ảnh hưởng đến SEO.

Bạn nên tạo Reverse Proxy trong Apache Server như thế nào?

Các trường hợp được thảo luận ở trên là khi bạn đang chạy một máy chủ không hỗ trợ PHP. Tuy nhiên, nếu bạn gặp phải trường hợp trang web chính của bạn đang chạy PHP hoặc Drupal, chẳng hạn, nhưng bạn muốn có một trang web khác cho blog trong cùng một tên miền, bạn cần cấu hình Reverse Proxy theo các bước dưới đây.

Nhưng trước đó, bạn cần đảm bảo rằng bạn có hai trang web đang hoạt động. Một là https://www.somedomain.com và trang web còn lại được cài đặt WordPress với tên miền phụ là https://blog.somedomain.com.

Trước hết, bạn cần mở terminal của máy chủ Apache qua SSH . Sau đó, bạn cần kích hoạt mô-đun proxy của Apache bằng lệnh này:

sudo a2enmod proxy proxy_http ssl

Lệnh này sẽ khởi động lại Apache trong hầu hết các trường hợp để tải lại các chỉ thị mới mà bạn đã xác định ở trên:

Tiếp theo là bước mà bạn đang chờ đợi. Đó là tạo proxy ngược bằng cách chỉnh sửa tệp máy chủ ảo của máy chủ.

<VirtualHost *>
DocumentRoot /var/www/app/public
SSLProxyEngine On ProxyRequests off
ProxyPass /blog http://blog.somedomain.com
ProxyPassReverse /blog http://blog.somedomain.com
</VirtualHost>

Hai điểm quan trọng cần lưu ý ở đây là:

  1. ProxyPass: Sẽ tạo một proxy ngược cho đường dẫn được đề cập ở trên
  2. ProxyPassReverse: Tiêu đề phản hồi HTTP được gửi qua proxy ngược này sẽ bị chặn và viết lại để phù hợp với máy chủ Apache.

Bây giờ các bước tiếp theo dành cho WordPress, đây là trường hợp điển hình cho cả hai tình huống trên.

Cập nhật WordPress

Sau đó, bạn cần đến máy chủ nơi bạn đã cài đặt WordPress và cập nhật tệp wp-config.php. Điều này là do bạn thường không cấu hình WordPress để chạy trên proxy ngược.

Vì vậy, bạn phải cập nhật tệp wp-config.php như sau:

$_SERVER['REQUEST_URI'] = str_replace("/wp-admin/", "/blog/wp-admin/", $_SERVER['REQUEST_URI']);

Sau đó, trong cùng một tệp, bạn cập nhật các biến sau:

Trong khi đó, bạn có thể cập nhật các giá trị cấu hình Cơ sở dữ liệu như sau:

CẬP NHẬT wp_options ĐẶT option_value = 'https://www.somedomain.com/blog' NƠI option_name TRONG('siteurl', 'home');

Bước tiếp theo là sửa đổi tệp .htacess để bạn có thể viết lại URL một cách chính xác:

Trở thành:

Quy tắc viết lại. /blog/index.php [L]

Sau khi hoàn tất tất cả các bước trên, bạn cần đảm bảo rằng bài đăng và liên kết danh mục đang hoạt động như mong đợi. Để làm như vậy, bạn cần đăng nhập bằng URL tên miền phụ cũ như bên dưới:

blog.somedomain.com/wp-login.php

Sau đó, bạn hãy điều hướng đến mục 'cài đặt' từ bảng điều khiển chính rồi nhấp vào tab "Chung".

Trong trường Địa chỉ trang web (URL), hãy cập nhật như sau:

Sau khi thực hiện, nếu bạn vẫn còn nghi ngờ liệu URL có hoạt động chính xác không, thì bạn có thể cài đặt plugin “Better Search Replace”. Plugin này sẽ cập nhật tất cả các bản ghi trên cơ sở dữ liệu của bạn khi cần thiết.

Ngoài ra, bạn cũng phải thận trọng khi cập nhật các canonical và robot.txt. 

Sau khi thực hiện, nếu bạn vẫn còn nghi ngờ liệu URL có hoạt động chính xác không, thì bạn có thể cài đặt plugin “Better Search Replace”. Plugin này sẽ cập nhật tất cả các bản ghi trên cơ sở dữ liệu của bạn khi cần thiết.

Ngoài ra, bạn cũng phải thận trọng khi cập nhật các canonical và robot.txt.

Phần kết luận

Bây giờ bạn có thể đã khám phá ra rằng WordPress có khả năng tùy chỉnh cao. Điều này là do bạn có thể sử dụng WordPress để lưu trữ riêng phần blog của trang web trong khi không đụng đến phần còn lại. Như bạn đã thấy qua blog này, phần còn lại của trang web có thể được lưu trữ trên các nền tảng khác nhau không hỗ trợ WordPress.

Vì vậy, việc đưa blog vào phần còn lại của trang web có thể là một nhiệm vụ đầy thách thức. Tuy nhiên, bạn có thể khắc phục chúng bằng cách sử dụng proxy ngược.

Hãy theo dõi để biết thêm các bài viết khác.