Tạo chỉ mục Google trên 90.000 hồ sơ người dùng


7

Tôi có một lượng lớn hồ sơ người dùng được lưu trữ trong lược đồ này https://example.com/stats.php?player=name(Đây không phải là URL đẹp nhất, nhưng .htaccesslàm chậm đáng kể trang web của tôi và tôi không hiểu apache2.conf). Dù sao đi nữa, làm cách nào tôi có thể khiến Google lập chỉ mục tất cả các trang này một cách linh hoạt mà không phải nhập tất cả 90.000 tài khoản vào sitemap.xml?


@ w3d. Trong khi bạn đang chỉnh sửa như vậy, bạn cũng nên sử dụng tên miền RFC 2606.
TRiG

2
Xem ra: Phần tử trên cùng <urlset>là một thùng chứa cho một bộ lên tới 50.000 phần tử tài liệu . Do đó, bạn nên gửi ít nhất hai sơ đồ trang web, nghĩa là phân chia đầu ra cơ sở dữ liệu tương ứng (sử dụng LIMITtrong truy vấn sql)
Hagen von Eitzen

Câu trả lời:


12

Sơ đồ trang web có thể năng động giống như các trang web. Chỉ cần có một tập lệnh PHP lấy các tên đó từ cơ sở dữ liệu và tạo một vòng lặp để lặp lại XML cho mỗi cái. Ngoài ra, hãy đảm bảo bạn xuất loại nội dung phù hợp cho XML của mình. Đó là nó.

Mã dưới đây là một tập lệnh cơ bản để tạo sơ đồ trang web XML động. Xin lưu ý rằng đây không chỉ là một ví dụ nhằm chỉ cho bạn hoặc bất kỳ ai đang tìm cách tạo sơ đồ trang web động, theo đúng hướng. Thực sự nên có kiểm tra lỗi và xử lý tốt hơn ở đây.

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
$query = "SELECT name FROM users";
if ($result = mysqli_query($link, $query)) {
    echo header("Content-type: text/xml");
?>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php
    $date = date('Y-m-d');
    while ($row = mysqli_fetch_assoc($result)) {
?>
     <url>
      <loc>https://domain.com/stats.php?player=<?php echo $row['name']; ?></loc>
      <lastmod><?php echo $date; ?></lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
<?php       
    }
    mysqli_free_result($result);
?>
</urlset> 
<?php   
}
mysqli_close($link);
?>

Hãy nhớ rằng một sơ đồ trang web có thể chỉ có 50.000 bản ghi trong đó để tập lệnh này có giới hạn. Nhưng bạn sẽ có thể sửa đổi nó để xử lý nhiều sơ đồ trang web cho phép bạn phát triển vượt quá giới hạn 50.000.


Tôi nghĩ rằng tôi nghĩ rằng việc ưu tiên giống hệt nhau cho mọi thứ sẽ gây ra lỗi trong các công cụ quản trị trang web của Google. Nhưng điều này có thể dễ dàng được sửa đổi bằng cách thêm cụ thể trang bắt đầu của trang web của bạn với mức độ ưu tiên 1, giả sử.
Hagen von Eitzen

@HagenvonEitzen Nói cho bạn biết sự thật tôi sẽ bỏ qua lĩnh vực đó hoàn toàn.
John Conde

1
Nếu bạn không thực sự theo dõi khi hồ sơ được sửa đổi lần cuối trong cơ sở dữ liệu của mình, tôi thực sự khuyên bạn nên rời khỏi <lastmod>trường, thay vì sử dụng một ngày giả như trong mã ví dụ này. Tốt nhất, sẽ không có sự khác biệt; tệ nhất là nói dối về thời điểm các trang của bạn được sửa đổi lần cuối có thể khiến trình thu thập thông tin bỏ lỡ các thay đổi (nếu ngày quá cũ) hoặc lãng phí thời gian để thu thập lại các trang không hiệu quả mà không thay đổi (nếu quá mới). Tất nhiên, tùy chọn tốt nhất sẽ thực sự lưu trữ dấu thời gian sửa đổi cuối cùng cho từng cấu hình trong cơ sở dữ liệu và báo cáo nó trong sơ đồ trang web.
Ilmari Karonen

3

Một sơ đồ trang web thường không giúp các trang được lập chỉ mục. Xem Nghịch lý Sơ đồ trang web .

Để có được các trang được lập chỉ mục:

  1. Bạn cần liên kết đến từng trang từ một số trang khác hoặc tốt nhất là nhiều trang khác.
  2. Bao gồm đủ nội dung duy nhất trên mỗi hồ sơ mà Google không xem các trang là trùng lặp.
  3. Cung cấp trải nghiệm trang đích tốt cho bất kỳ ai đến trang từ tìm kiếm của Google. Nếu Google lập chỉ mục trang nhưng sau đó thấy rằng không ai nhấp vào trang đó hoặc mỗi lần nhấp trở lại để nhấp vào kết quả khác, nó sẽ giảm thứ hạng hoặc rơi ra khỏi chỉ mục khá nhanh.

Nói chung, các trang hồ sơ người dùng thường không phải là các trang ứng cử viên tuyệt vời để đưa vào chỉ mục tìm kiếm của Google. Chúng thường không có nhiều nội dung, cũng không phải là trang đích tốt.


2
Trên thực tế, các trang trong sơ đồ trang web và không được liên kết trực tiếp sẽ bị gián đoạn: Tôi có một tập lệnh php là trình bao bọc xung quanh các tệp html trong cấu trúc thư mục và sơ đồ trang web động đã dịch cây thư mục thành các URL được bọc. Một thư mục "thử nghiệm" được đặc biệt loại trừ trong skript của trình bao bọc, nhưng đôi khi sau đó xuất hiện lập chỉ mục. Chỉ khi tôi chặn bằng robot.txt và nhận được tất cả những cảnh báo về các liên kết bị chặn trong sơ đồ trang web, tôi mới nhận thấy rằng thư mục thử nghiệm đã được đưa vào sơ đồ trang web ...
Hagen von Eitzen

Các mục trong sơ đồ trang web sẽ được thu thập thông tin, vâng, nhưng chúng không có khả năng được lập chỉ mục. Ngay cả khi họ được lập chỉ mục, họ sẽ không xếp hạng đặc biệt tốt.
Stephen Ostermiller

1
Ý của bạn là "không được lập chỉ mục", "sẽ không được tìm thấy ngay cả khi tìm kiếm player name site:example.com"? Hay bạn chỉ muốn nói, sẽ không thu hút được vô số lưu lượng tìm kiếm hữu cơ từ các cụm từ có số lượng lớn gợi cảm? ;-)
Steve Jessop
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.