Tạo sơ đồ trang web Magento Google


8

Tôi đã tạo google sitemap thông qua Magento adminpanel.

Tôi đã đặt Suffix URL sản phẩm (html) và Suffix URL danh mục (html) trong cấu hình.

Hậu tố này không được hiển thị trong sitemap.xml.

Nó chỉ hiển thị như bên dưới URL,

www.site.com/men/t-lover/crew-neck-t-shumps

nhưng nó ném 404 với hậu tố url

Và tôi cũng đã vô hiệu hóa một số loại cha mẹ, như

-root category
   - Men
     - T-shirt // i have disable this category
       - Crew Neck
       - V Neck

Vì vậy, sơ đồ trang web tạo ra cho thể loại như thế này

www.site.com/men/t-lover/crew-neck

nhưng tôi cần thể hiện như thế này

www.site.com/men/crew-neck

Làm thế nào để đạt được điều này. Tôi đã kiểm tra trong bộ sưu tập sau đây

Mage::getResourceModel('sitemap/catalog_category')->getCollection($storeId)

Mage::getResourceModel('sitemap/catalog_product')->getCollection($storeId)

nhưng không có may mắn

Bất kỳ đề xuất sẽ được đánh giá cao.


Vì vậy, để làm rõ, bạn muốn xóa danh mục phụ khỏi tất cả các URL?
zigojacko

@zigojacko Có, Không phải tất cả danh mục phụ chỉ bị vô hiệu hóa.
VijayS91

Tại sao không đổi tên danh mục Menthành Men's T-Shirts? Nếu bạn đang vô hiệu hóa một danh mục chứa các danh mục phụ thì thậm chí có cần phải giữ danh mục chính đó không - trong trường hợp này T-Shirts?
zigojacko

Hoặc thực hiện phương pháp đơn giản hơn, không tạo sơ đồ trang web. Điều này cũng giống như đưa cho Google chìa khóa cho cửa trước của bạn và câu hỏi là - cho rằng họ tạo ra 70% doanh thu của họ thông qua Adwords - bạn có tin tưởng họ nhiều như vậy không. Sử dụng bất kỳ công cụ Google nào cho phép họ lập tức lập hồ sơ trang web của bạn và xếp hạng bạn phù hợp - tại sao làm cho nó dễ dàng - nhưng đây là một điểm kinh doanh không phải là kỹ thuật - ngoại trừ chúng hoàn toàn được kết nối với nhau.

Câu hỏi của tôi là tại sao url www.site.com/men/t-shirt/crew-neck-t-shirtsném 404. Tôi đã tự mình thử và vô hiệu hóa danh mục chính và các liên kết đầy đủ vẫn hoạt động tốt.
Phong tục David

Câu trả lời:


4

Để giải quyết một trong những ý kiến ​​ban đầu của bạn:

"Tôi đã đặt Suffix URL sản phẩm (html) và Suffix URL danh mục (html) trong cấu hình.

Hậu tố này không hiển thị trong sitemap.xml. "

Chúng tôi nhận thấy lỗi này được giới thiệu trong EE 1.13. Chúng tôi yêu cầu một bản vá và nhận được sau đây. Tôi không tin đây là đặc thù của EE nên hy vọng nó sẽ giúp được một chút. Ngoài ra, chỉ cần nâng cấp trang EE 1.12 lên 1.14 và nhận thấy tất cả phần mở rộng .html cũng bị loại bỏ khỏi sitemap.xml. Vâng, có .html là trường học cũ và thực sự không có giá trị seo nào trong những ngày này nhưng lỗi này thực sự có thể hút nếu nó không được chú ý.

Cảnh báo ... Tôi không nhìn vào tệp được tham chiếu trong cộng đồng. Sử dụng điều này như một hướng dẫn, đừng cố áp dụng bản vá một cách mù quáng vào cửa hàng cộng đồng của bạn. Hoặc nếu bạn làm, ít nhất là kiểm tra nó rất kỹ lưỡng trước khi đi vào hoạt động.

__PATCHFILE_FOLLOWS__
diff --git app/code/core/Mage/Sitemap/Model/Sitemap.php app/code/core/Mage/Sitemap/Model/Sitemap.php
index 2213a4f..734bb91 100644
--- app/code/core/Mage/Sitemap/Model/Sitemap.php
+++ app/code/core/Mage/Sitemap/Model/Sitemap.php
@@ -151,11 +151,13 @@ class Mage_Sitemap_Model_Sitemap extends Mage_Core_Model_Abstract
          */
         $changefreq = (string)Mage::getStoreConfig('sitemap/category/changefreq', $storeId);
         $priority   = (string)Mage::getStoreConfig('sitemap/category/priority', $storeId);
+        $urlSuffix  = Mage::helper('catalog/category')->getCategoryUrlSuffix($storeId);
+        $urlSuffix  = ($urlSuffix) ? '.' . $urlSuffix : '';
         $collection = Mage::getResourceModel('sitemap/catalog_category')->getCollection($storeId);
         foreach ($collection as $item) {
             $xml = sprintf(
                 '<url><loc>%s</loc><lastmod>%s</lastmod><changefreq>%s</changefreq><priority>%.1f</priority></url>',
-                htmlspecialchars($baseUrl . $item->getUrl()),
+                htmlspecialchars($baseUrl . $item->getUrl() . $urlSuffix),
                 $date,
                 $changefreq,
                 $priority
@@ -169,11 +171,13 @@ class Mage_Sitemap_Model_Sitemap extends Mage_Core_Model_Abstract
          */
         $changefreq = (string)Mage::getStoreConfig('sitemap/product/changefreq', $storeId);
         $priority   = (string)Mage::getStoreConfig('sitemap/product/priority', $storeId);
+        $urlSuffix  = Mage::helper('catalog/product')->getProductUrlSuffix($storeId);
+        $urlSuffix  = ($urlSuffix) ? '.' . $urlSuffix : '';
         $collection = Mage::getResourceModel('sitemap/catalog_product')->getCollection($storeId);
         foreach ($collection as $item) {
             $xml = sprintf(
                 '<url><loc>%s</loc><lastmod>%s</lastmod><changefreq>%s</changefreq><priority>%.1f</priority></url>',
-                htmlspecialchars($baseUrl . $item->getUrl()),
+                htmlspecialchars($baseUrl . $item->getUrl() . $urlSuffix),
                 $date,
                 $changefreq,
                 $priority

2

Tôi chưa thử nghiệm trong Enterprise 1.13 nhưng tiện ích mở rộng của tôi hoạt động rất tốt cho các phiên bản cộng đồng của magento và cũng sẽ hoạt động với EE.

Để kiểm tra vấn đề của bạn, tôi đã tạo một danh mục chính gọi là "Kiểm tra" ... đã vô hiệu hóa nó. Tạo một danh mục con có tên là "test-subcat" và kích hoạt nó với hậu tố .html được bật cho các url danh mục.

Tôi có thể xác nhận rằng .html được thêm vào các url danh mục và các danh mục bị vô hiệu hóa không được bao gồm trong sơ đồ trang web. Nếu bạn muốn danh mục của mình được hiển thị tại www.site.com/men/crew-neck, thì bạn chỉ cần di chuyển "cổ thuyền" ra khỏi danh mục "Áo phông" và đặt nó trong danh mục phụ huynh "Đàn ông".


1

Nếu bạn muốn ẩn các danh mục không hoạt động trong sơ đồ trang web Magento: -

Mở lên /app/design/frontend/package/theme/template/catalog/seo/tree.phtml(hoặc sao chép tệp từ basevị trí này): -

Tập tin này hiển thị danh sách các mục trong sơ đồ trang web.

<?php $_items = $this->getCollection(); ?>
<?php if($_items->getSize()): ?>
    <ul class="sitemap">
        <?php foreach ($_items as $_item): ?>
            <li class="level-<?php echo $this->getLevel($_item) ?>" <?php echo $this->getLevel($_item)?'style="padding-left:' . $this->getLevel($_item, 2) . '0px;"':'' ?>><a href="<?php echo $this->getItemUrl($_item) ?>"><?php echo $_item->name ?></a></li>
        <?php endforeach; ?>
    </ul>
<?php else: ?>
    <p class="note-msg">
        <?php echo $this->__('There are no %s available.', $this->getItemsTitle()); ?>
    </p>
<?php endif ?>

Bạn có thể kiểm tra nếu $_itemhoạt động trước khi hiển thị: -

<?php $_items = $this->getCollection(); ?>
<?php if($_items->getSize()): ?>
    <ul class="sitemap">
        <?php if( $_item->is_active ) : ?>
            <?php foreach ($_items as $_item): ?>
                <li class="level-<?php echo $this->getLevel($_item) ?>" <?php echo $this->getLevel($_item)?'style="padding-left:' . $this->getLevel($_item, 2) . '0px;"':'' ?>><a href="<?php echo $this->getItemUrl($_item) ?>"><?php echo $_item->name ?></a></li>
            <?php endforeach; ?>
        <?php endif; ?> 
    </ul>
<?php else: ?>
    <p class="note-msg">
        <?php echo $this->__('There are no %s available.', $this->getItemsTitle()); ?>
    </p>
<?php endif ?>

Nếu đây là tất cả những gì bạn muốn làm, hãy tạo một vòng xoáy và xem điều đó có giải quyết được vấn đề không.

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.