Magento Google Sitemap Generation

8

Saya telah menghasilkan sitemap google melalui adminpanel Magento.

Saya telah menetapkan Sufiks URL Produk (html) dan Sufiks URL Kategori (html) dalam konfigurasi.

Akhiran ini tidak ditampilkan di sitemap.xml.

Itu hanya menunjukkan seperti URL di bawah ini,

www.site.com/men/t-shirt/crew-neck-t-shirts

tapi itu membuang 404 dengan akhiran url

Dan saya juga telah menonaktifkan beberapa kategori induk, seperti

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

Jadi sitemap menghasilkan untuk kategori seperti ini

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

tetapi saya perlu menunjukkan seperti ini

www.site.com/men/crew-neck

bagaimana mencapai ini. Saya telah memeriksa koleksi berikut

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

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

tapi tidak berhasil.

Setiap saran akan dihargai.

VijayS91
sumber
Jadi hanya untuk memperjelas, Anda ingin menghapus sub kategori dari semua URL?
zigojacko
@zigojacko Ya, Tidak semua sub kategori hanya kategori yang dinonaktifkan.
VijayS91
Mengapa tidak hanya mengubah nama kategori Menke Men's T-Shirts? Jika Anda menonaktifkan kategori yang memiliki sub kategori maka apakah ada kebutuhan untuk mempertahankan kategori induk tersebut - dalam contoh ini T-Shirts?
zigojacko
Atau gunakan pendekatan yang lebih sederhana, jangan menghasilkan peta situs. Ini sama dengan memberi Google kunci ke pintu depan Anda, dan pertanyaannya adalah - mengingat bahwa mereka menghasilkan 70% dari pendapatan mereka melalui Adwords - apakah Anda begitu mempercayai mereka? Dengan menggunakan alat Google apa pun, mereka dapat membuat profil situs Anda secara instan dan memberi peringkat kepada Anda - mengapa membuatnya sangat mudah - tetapi ini adalah titik bisnis bukan titik teknis - kecuali mereka benar-benar saling berhubungan.
Pertanyaan saya adalah mengapa url www.site.com/men/t-shirt/crew-neck-t-shirtsmelempar 404. Saya telah mencoba ini sendiri dan menonaktifkan kategori induk dan tautan lengkapnya masih berfungsi dengan baik.
David Manners

Jawaban:

4

Untuk mengatasi salah satu komentar awal Anda:

"Saya telah menetapkan Sufiks URL Produk (html) dan Sufiks URL Kategori (html) dalam konfigurasi.

Sufiks ini tidak ditampilkan di sitemap.xml. "

Kami perhatikan bug ini diperkenalkan di EE 1.13. Kami meminta tambalan dan menerima yang berikut. Saya tidak percaya ini spesifik EE jadi semoga sedikit membantu. Selain itu, baru saja meningkatkan situs EE 1.12 menjadi 1.14 dan memperhatikan bahwa ekstensi .html juga dihapus dari sitemap.xml. Ya, memiliki .html sudah tua dan benar-benar tidak memiliki nilai seo apa pun akhir-akhir ini tetapi bug ini benar-benar dapat menyedot jika tidak diketahui.

Peringatan ... Saya tidak melihat file yang direferensikan di komunitas. Gunakan ini sebagai panduan, jangan mencoba menerapkan patch secara membabi buta ke toko komunitas Anda. Atau jika Anda melakukannya, setidaknya mengujinya dengan saksama sebelum ditayangkan.

__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
mattmac
sumber
2

Saya belum menguji di Enterprise 1.13 tetapi ekstensi saya berfungsi dengan baik untuk edisi komunitas magento dan harus bekerja dengan EE juga.

Untuk menguji masalah Anda, saya membuat kategori induk yang disebut "Tes" ... menonaktifkannya. Membuat sub-kategori yang disebut "test-subcat" dan mengaktifkannya dengan akhiran .html diaktifkan untuk url kategori.

Saya dapat mengonfirmasi bahwa .html ditambahkan ke url kategori dan kategori yang dinonaktifkan tidak termasuk dalam peta situs. Jika Anda ingin kategori Anda ditampilkan di www.site.com/men/crew-neck, maka cukup pindahkan "crew-neck" keluar dari kategori "T-shirt" dan letakkan di bawah kategori induk "Pria".

pengguna2201302
sumber
1

Jika Anda ingin menyembunyikan kategori tidak aktif di peta situs Magento: -

Buka /app/design/frontend/package/theme/template/catalog/seo/tree.phtml(atau salin file dari baseke lokasi ini): -

File ini membuat daftar item dalam sitemap.

<?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 ?>

Anda dapat memeriksa apakah $_itemaktif sebelum menampilkan: -

<?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 ?>

Jika ini yang ingin Anda lakukan, berputarlah dan lihat apakah itu menyelesaikan masalah.

zigojacko
sumber