В пределах HTML эта проблема обычно не решается. Всё повторяющееся: менюшка, шапка, футер — часто присутствуют на каждой странице, даже тогда, когда объём уникального контента на ней — на порядок меньше текста всей навигации, не говоря об её коде.
XSLT на клиенте позволяет сделать документ коротким — не на много длиннее контента:
файл.xml
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="user-Hide-Duplicate-Content.xsl"?> <html> <head> <title>как прятать от поиска дубли контента</title> <meta name="description" content="Пример его выкидывания в файл.XSL…"/> </head> <body> <div id="top-menu"/> <div id="left-menu"/> <div class="links"><a href="http://rambler-snippet.narod.ru/" title="там смотри HTML">сниппеты</a> · <a href="http://seo-xslt.narod.ru/" title="микро-FAQ по XML">XSLT</a></div> <h1>избавить ПС от дублей контента</h1> <p>Неповторимый контент…</p> <p>…</p> <p>…</p> <p>…</p> <div id="footer"/> </body> </html>
шаблон.xsl
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="UTF-8"/> <xsl:template match="/"> <html> <xsl:apply-templates/> </html> </xsl:template> <xsl:template match="head"> <head> <xsl:copy-of select="title"/> <style type="text/css"> body {font: 90% Arial;line-height: 1.4;} b {display: block} .top-menu {width: 80%;margin:1em 0;background-color:#E7EADD} .left-menu {position: absolute;left: 1%;top: 9em; padding: 0.4ex;background-color: #FFFFEE; border: #DDDDDD solid 1px;text-align: center;padding: 1ex;} .content {margin: 8% 18% 2% 27%;text-align: left;} .footer{background-color:#BBBB99;text-align: center; width:100%;padding-top:1ex;margin:6em 0 0 0;font-size:80%} .links {margin: 2em;position: absolute;left: 0;font-size:80%} </style> </head> </xsl:template> <xsl:template match="body"> <body> <xsl:apply-templates select="div[@id='top-menu']"/> <xsl:apply-templates select="div[@id='left-menu']"/> <div class="content"> <xsl:apply-templates select="h1"/> <xsl:apply-templates select="p"/> </div> <xsl:apply-templates select="div[@class='links']"/> <xsl:apply-templates select="div[@id='footer']"/> </body> </xsl:template> <xsl:template match="h1"> <xsl:copy-of select="."/> </xsl:template> <xsl:template match="p"> <p><xsl:apply-templates/></p> </xsl:template> <xsl:template match="div[@class='links']"> <xsl:copy-of select="."/> </xsl:template> <xsl:template match="div[@id='top-menu']"> <div align="center"> <table class="top-menu"> <tr> <th>шапка</th> <td>два</td> <td>три</td> <td>четыре</td> <td><a href="http://teonanakatl.com/">шаманские</a></td> <td>пять</td> <td>шесть</td> <td>семь</td> <td>восемь</td> </tr> </table> </div> </xsl:template> <xsl:template match="div[@id='left-menu']"> <div class="left-menu"> <strong>Меню</strong> <b>раз</b> <b>два</b> <b>три</b> <b>четыре</b> <b>пять</b> <b>шесть</b> </div> </xsl:template> <xsl:template match="div[@id='footer']"> <div class="footer"> при копировании обязательна прямая сцылка, иначе затаскаю по судам! <p>© 2011 *****</p> </div> </xsl:template> </xsl:stylesheet>
А всё повторяющееся — не только текст меню, шапки, футера, но и их разметка — скрыто от поисковиков в файле.XSL (и не перекачивается с каждой страницей — оставаясь в кэше браузера, уменьшая траффик).
Поисковым системам становится проще… выделять в документе неповторимое. А разметка файла.XML оказывается минимальной — её усложнение происходит при XSLT.
Как показать блоки кода роботу и посетителю в разном порядке?