Dynamic pages and code within content
-
Hi all,
I'm considering creating a dynamic table on my site that highlights rows / columns and cells depending on buttons that users can click. Each cell in the table links to a separate page that is created dynamically pulling information from a database.
Now I'm aware of the google guidelines: "If you decide to use dynamic pages (i.e., the URL contains a "?" character), be aware that not every search engine spider crawls dynamic pages as well as static pages. It helps to keep the parameters short and the number of them few."
So we wondered whether we could put the dynamic pages in our sitemap so that google could index them - the pages can be seen with javascript off which is how the pages are manipulated to make them dynamic.
Could anyone give us a overview of the dangers here?
I also wondered if you still need to separate content from code on a page? My developer still seems very keen to use inline CSS and javascript!
Thanks a bundle.
-
That's it! Thanks Baptiste - the anchor text is going to be an image and an unoptimised image at that... I knew there was a reason that my brain was kicking up a fuss with this code. Brilliant, thanks.
-
If you have pages on your site without any internal link to them (I mean pages reachable by Google Bot when he visits your site), they won't rank well, and your site won't be ranking well too.
That's because your pages will only be visible to Google through the sitemap. The Google Bot will think "Hey these pages are not accessible to the user through the site links? I should not rank them then."
You will penalize your whole domain too because you will be losing additional pages in the site. Especially if those pages have good content (I suppose this the case anyway).
BUT, given your example, Google Bot should be able to access them with you strange link. Question is, what is the anchor text ? Is the anchor a generic text or a good keyword for each page? If you have bad anchor text, I would make a specific section on the site which allows the user and GBot to access theses pages with good anchor text.
Maybe a HTML sitemap, as you may see one on rotten tomatoes :
-
Ok, thanks so much for the advice, just to clarify there is a link to the dynamic page and it's address will be permanent so it can be accessed in the browser address bar. Here is the link example that the developer gave:
[If I understand correctly you are saying that this dynamic page can't rank? Even if it is permanently there?
Is that right?](Index.asp?Page=ExamplePage)
-
agreed, ref=canonical
-
I would rel=canonical all versions of the page to point to one without querystring. You only want one page to be indexed.
I would also (sorry) reconsider your ties with a developer who wants to use inline CSS. That is just dumb...
-
I would not recommend doing so, google will index you pages but he won't be able to find them anywhere on the internet, event on your website. They won't rank.
You should make, at least, a way for users and google to access theses pages without the buttons.
For the code / content / style issue, you should really stop putting all together - it's been 10 years since people started to separate content and style
Got a burning SEO question?
Subscribe to Moz Pro to gain full access to Q&A, answer questions, and ask your own.
Browse Questions
Explore more categories
-
Moz Tools
Chat with the community about the Moz tools.
-
SEO Tactics
Discuss the SEO process with fellow marketers
-
Community
Discuss industry events, jobs, and news!
-
Digital Marketing
Chat about tactics outside of SEO
-
Research & Trends
Dive into research and trends in the search industry.
-
Support
Connect on product support and feature requests.
Related Questions
-
JSON-LD product page markup for multiple currencies?
I haven't found a working example of a single product page with one "Offer" in multiple "priceCurrency" and "price" We have product pages with a single product URL which will offer different prices in different currencies based on the user's IP. Some of the language of the page will be translated based on the IP (this will have href lang tag) but the URL will not change. (We're aware TLD is considered best practice, however, this is not an option at this time.) Is the best option to update the markup based on what the corresponding "country"? I'm uncertain how this may be handled by crawlers. Eg, For the product page https://www.example.com/product1 displaying USD "offers": {
Web Design | | sb1030
"@type": "Offer",
"url": "https://www.example.com/product1",
"itemCondition": "https://schema.org/NewCondition",
"availability": "InStock",
"priceCurrency": "USD",
"price": "7.99"} For the product pagehttps://www.example.com/product1 displaying EUR "offers": {
"@type": "Offer",
"url": "https://www.example.com/product1",
"itemCondition": "https://schema.org/NewCondition",
"availability": "InStock",
"priceCurrency": "EUR",
"price": "7.50"} Thanks for any input.0 -
Best Practices-Optimize Theme Before Coding or After Coding?
We purchased a Wordpress Real estate theme called wpcasa. My developer started coding it. We hired a new SEO. The SEO looked at a simple page (About Us) and saw about 70 Java scripts and 11 templates and was very dissatisfied with the coding and heavy source code contained in the theme. My SEO claims the optimizing this theme (removing the unnecessary Java Scripts and combining the templates is way too much work and that it would be better to start from scratch and purchase a theme like https://my.studiopress.com/themes/agentpress/ with more compact, efficient and streamlined code. Problem is we need to throw out 2 months and thousands of dollars worth of code. My SEO says that in the day of Google's "mobile first" streamlined code is particularly important. My developer has taken the position that the code can be cleaned up after the design. Where it seems my SEO wants clean code to stat with. I don't know who to is right. Any ideas? Am I better of starting from scratch with a new more efficient theme, or cleaning up the code on the wpcasa theme? The code for the test page is below. Thanks! | |
Web Design | | Kingalan1
| | lang="en-US" prefix="og: http://ogp.me/ns#"> |
| | |
| | charset="UTF-8"> |
| | http-equiv="X-UA-Compatible" content="IE=edge"> |
| | name="viewport" content="width=device-width, initial-scale=1"> |
| | rel="profile" href="http://gmpg.org/xfn/11"> |
| | rel="pingback" href="http://dev.metro-manhattan.com/xmlrpc.php"> |
| | |
| | <title></span>About Metro Manhattan - Metro Manhattan Office Space<span class="html-tag"></title> |
| | |
| | |
| | |
| | name="description" content="New York City real estate brokerage service helps business tenants acquire office, commercial loft, retail or showroom space anywhere in Manhattan."/> |
| | name="robots" content="noindex,follow"/> |
| | property="og:locale" content="en_US" /> |
| | property="og:type" content="article" /> |
| | property="og:title" content="About Metro Manhattan - Metro Manhattan Office Space" /> |
| | property="og:description" content="New York City real estate brokerage service helps business tenants acquire office, commercial loft, retail or showroom space anywhere in Manhattan." /> |
| | property="og:url" content="http://dev.metro-manhattan.com/about-us/" /> |
| | property="og:site_name" content="Metro Manhattan Office Space" /> |
| | name="twitter:card" content="summary_large_image" /> |
| | name="twitter:description" content="New York City real estate brokerage service helps business tenants acquire office, commercial loft, retail or showroom space anywhere in Manhattan." /> |
| | name="twitter:title" content="About Metro Manhattan - Metro Manhattan Office Space" /> |
| | name="twitter:image" content="http://dev.metro-manhattan.com/wp-content/uploads/2018/07/process-01.png" /> |
| | |
| | |
| | rel='dns-prefetch' href='//maps.googleapis.com' /> |
| | rel='dns-prefetch' href='//maxcdn.bootstrapcdn.com' /> |
| | rel='dns-prefetch' href='//fonts.googleapis.com' /> |
| | rel='dns-prefetch' href='//s.w.org' /> |
| | rel="alternate" type="application/rss+xml" title="Metro Manhattan Office Space » Feed" href="http://dev.metro-manhattan.com/feed/" /> |
| | rel="alternate" type="application/rss+xml" title="Metro Manhattan Office Space » Comments Feed" href="http://dev.metro-manhattan.com/comments/feed/" /> |
| | rel="alternate" type="application/rss+xml" title="Metro Manhattan Office Space » About Metro Manhattan Comments Feed" href="http://dev.metro-manhattan.com/about-us/feed/" /> |
| | |
| | |
| | rel='stylesheet' id='font-awesome-css' href='http://dev.metro-manhattan.com/wp-content/plugins/menu-icons/vendor/kucrut/icon-picker/css/types/font-awesome.min.css?ver=4.7.0' type='text/css' media='all' /> |
| | rel='stylesheet' id='menu-icons-extra-css' href='http://dev.metro-manhattan.com/wp-content/plugins/menu-icons/css/extra.min.css?ver=0.11.2' type='text/css' media='all' /> |
| | rel='stylesheet' id='contact-form-7-bootstrap-style-css' href='http://dev.metro-manhattan.com/wp-content/plugins/bootstrap-for-contact-form-7/assets/dist/css/style.min.css?ver=4.9.5' type='text/css' media='all' /> |
| | rel='stylesheet' id='wpsight-favorites-css' href='http://dev.metro-manhattan.com/wp-content/plugins/wpcasa-favorites/assets/css/wpsight-favorites.min.css?ver=4.9.5' type='text/css' media='all' /> |
| | rel='stylesheet' id='wpsight-listing-labels-css' href='http://dev.metro-manhattan.com/wp-content/plugins/wpcasa-listing-labels/assets/css/wpsight-listing-labels.min.css?ver=4.9.5' type='text/css' media='all' /> |
| | rel='stylesheet' id='wpsight-listings-map-css' href='http://dev.metro-manhattan.com/wp-content/plugins/wpcasa-listings-map/assets/css/wpsight-listings-map.min.css?ver=4.9.5' type='text/css' media='all' /> |
| | rel='stylesheet' id='wpfront-notification-bar-css' href='http://dev.metro-manhattan.com/wp-content/plugins/wpfront-notification-bar/css/wpfront-notification-bar.css?ver=1.7' type='text/css' media='all' /> |
| | rel='stylesheet' id='wpfront-scroll-top-css' href='http://dev.metro-manhattan.com/wp-content/plugins/wpfront-scroll-top/css/wpfront-scroll-top.min.css?ver=2.0.1' type='text/css' media='all' /> |
| | rel='stylesheet' id='chld_thm_cfg_parent-css' href='http://dev.metro-manhattan.com/wp-content/themes/wpcasa-london/style.css?ver=4.9.5' type='text/css' media='all' /> |
| | rel='stylesheet' id='fontawesome.min.css-css' href='http://dev.metro-manhattan.com/wp-content/themes/wpcasa-london-child/assets/css/fontawesome.min.css?ver=4.9.5' type='text/css' media='all' /> |
| | rel='stylesheet' id='load-fa-css' href='https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css?ver=4.9.5' type='text/css' media='all' /> |
| | rel='stylesheet' id='wpcasa-london-css' href='http://dev.metro-manhattan.com/wp-content/themes/wpcasa-london-child/style.css?ver=4.9.5' type='text/css' media='all' /> |
| | rel='stylesheet' id='bootstrap-css' href='http://dev.metro-manhattan.com/wp-content/themes/wpcasa-london/vendor/twbs/bootstrap/css/bootstrap.css?ver=3.3.6' type='text/css' media='all' /> |
| | rel='stylesheet' id='bootstrap-dropdownhover-css' href='http://dev.metro-manhattan.com/wp-content/themes/wpcasa-london/vendor/kybarg/bootstrap-dropdown-hover/css/bootstrap-dropdownhover.min.css?ver=1.0.0' type='text/css' media='all' /> |
| | rel='stylesheet' id='bootstrap-select-css' href='http://dev.metro-manhattan.com/wp-content/themes/wpcasa-london/vendor/silviomoreto/bootstrap-select/css/bootstrap-select.min.css?ver=1.10.0' type='text/css' media='all' /> |
| | rel='stylesheet' id='awesome-bootstrap-checkbox-css' href='http://dev.metro-manhattan.com/wp-content/themes/wpcasa-london/vendor/flatlogic/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.min.css?ver=0.3.7' type='text/css' media='all' /> |
| | rel='stylesheet' id='pushy-css' href='http://dev.metro-manhattan.com/wp-content/themes/wpcasa-london/assets/css/pushy.css?ver=1.2.1' type='text/css' media='all' /> |
| | rel='stylesheet' id='lightslider-css' href='http://dev.metro-manhattan.com/wp-content/themes/wpcasa-london/vendor/sachinchoolur/lightslider/css/lightslider.min.css?ver=1.1.5' type='text/css' media='all' /> |
| | rel='stylesheet' id='lightgallery-css' href='http://dev.metro-manhattan.com/wp-content/themes/wpcasa-london/vendor/sachinchoolur/lightgallery/css/lightgallery.min.css?ver=1.2.15' type='text/css' media='all' /> |
| | rel='stylesheet' id='animate-css' href='http://dev.metro-manhattan.com/wp-content/themes/wpcasa-london/assets/css/animate.min.css?ver=1.2.1' type='text/css' media='all' /> |
| | rel='stylesheet' id='dashicons-css' href='http://dev.metro-manhattan.com/wp-includes/css/dashicons.min.css?ver=4.9.5' type='text/css' media='all' /> |
| | rel='stylesheet' id='google-fonts-css' href='//fonts.googleapis.com/css?family=Lato:700,400|Raleway:400,300&subset=latin' type='text/css' media='all' /> |
| | rel='stylesheet' id='wpmtst-custom-style-css' href='http://dev.metro-manhattan.com/wp-content/plugins/strong-testimonials/public/css/custom.css?ver=4.9.5' type='text/css' media='all' /> |
| | rel='stylesheet' id='zcffront-jquery-ui-css' href='http://dev.metro-manhattan.com/wp-content/plugins/zoho-crm-forms/assets/css/jquery-ui.css?ver=4.9.5' type='text/css' media='all' /> |
| | rel='stylesheet' id='zcffront-end-styles-css' href='http://dev.metro-manhattan.com/wp-content/plugins/zoho-crm-forms/assets/css/frontendstyles.css?ver=4.9.5' type='text/css' media='all' /> |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | rel='https://api.w.org/' href='http://dev.metro-manhattan.com/wp-json/' /> |
| | rel="EditURI" type="application/rsd+xml" title="RSD" href="http://dev.metro-manhattan.com/xmlrpc.php?rsd" /> |
| | rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://dev.metro-manhattan.com/wp-includes/wlwmanifest.xml" /> |
| | name="generator" content="WordPress 4.9.5" /> |
| | rel='shortlink' href='http://dev.metro-manhattan.com/?p=3800' /> |
| | rel="alternate" type="application/json+oembed" href="http://dev.metro-manhattan.com/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fdev.metro-manhattan.com%2Fabout-us%2F" /> |
| | rel="alternate" type="text/xml+oembed" href="http://dev.metro-manhattan.com/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fdev.metro-manhattan.com%2Fabout-us%2F&format=xml" /> |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | rel="icon" href="http://dev.metro-manhattan.com/wp-content/uploads/2018/06/metromanhattan_icon-75x75.png" sizes="32x32" /> |
| | rel="icon" href="http://dev.metro-manhattan.com/wp-content/uploads/2018/06/metromanhattan_icon.png" sizes="192x192" /> |
| | rel="apple-touch-icon-precomposed" href="http://dev.metro-manhattan.com/wp-content/uploads/2018/06/metromanhattan_icon.png" /> |
| | name="msapplication-TileImage" content="http://dev.metro-manhattan.com/wp-content/uploads/2018/06/metromanhattan_icon.png" /> |
| | |
| | |
| | |
| | |
| | |
| | class="page-template page-template-page-tpl-about page-template-page-tpl-about-php page page-id-3800 page-parent custom-background wpsight-london" itemscope itemtype="http://schema.org/WebPage"> |
| | |
| | |
| | id="top" class="site-wrapper"> |
| | |
| | |
| | class="header-widgets"> |
| | |
| | class="header-full-width"> |
| | id="section-wpsight_london_listings_search-2" class="widget-section section-widget_listings_search">id="wpsight_london_listings_search-2" class="widget widget_listings_search"> <form <span="" class="html-attribute-name">method="get" action="http://dev.metro-manhattan.com/search/" class="wpsight-listings-search horizontal"></form> |
| | |
| | class="listings-search-default"> |
| | class="row gutter-30"> |
| | class="listings-search-field listings-search-field-text listings-search-field-keyword col-xs-12 col-sm-9"> |
| | class="listing-search-keyword text form-control" title="Keyword or Listing ID…" name=" |0 -
Toggle Tabs on pages - How to present information to users
Hi all, I can use some help with SEO/UX related question I have got. I have a client who has some toggel tabs on its website. Is there a way to display the relevant information from these toggle tabs when a user lands on the page instead of having the same toggle tab show for whenever a user reaches the page? What I am trying to understand is that if a user searched for "vitamin C benefit" (lets say) in Google and then clicks on the link, the user is presented with the "benefits" tab on the page instead of "side effects" tab. Any help would be appreciated! Thanks
Web Design | | Malika1
Malika0 -
Best Practices for Leveraging Long Tail Content & Gated Content
Our B2B site has a lot of of long form content (e.g., transcriptions from presentations and webinars). We'd like to leverage the long tail SEO traffic driven to these pages and convert those visitors to leads. Essentially, we'd like Google to index all this lengthy, keyword-rich content AND we'd like to put up a read gate that requires users to register before viewing the full article. This is a B2B site, and the goal is to generate leads. Some considerations and questions: How much of the content to share before requiring registration? Ask too soon and it's a terrible user experience, give too much away and our business objectives are not met. Design-wise, what are good ways to do this? I notice Moz uses a "teaser" to block Mozinar content, and I've seen modals and blur bars on other sites. Any gotchas that Google doesn't like that we should be aware of? Trying to avoid anything that might seem like cloaking. Is it better to split the content across several pages (split a 10K word doc across 10 URLs and include a read gate on each) or keep to one page? Thank you!
Web Design | | Allie_Williams0 -
How to do a non-spammy "doorway page"?
Hi there, ISSUE: I have a client who wishes to use a "doorway" page, but not in a spammy way. He would like to have a nice crisp URL for use in ads/brochures. The page is strictly a landing page (just with a separate URL). DOORWAY/LANDING PAGE WILL BE: Non-spammy -- There will be no attempt to optimize the landing page/no attempt to get the page to rank. Strictly a vanity URL -- he likes the way a separate website looks in ads as opposed to a landing page on the existing website (i.e., www.websitename.com/landing page) WHAT I'M TRYING TO DO: I'm basically trying to figure out what the best things to do to protect his other sites (which are very high quality valuable sites which rank well) from getting punished. STEPS I'M CONSIDERING: Robots no follow Separate hosting server Different person's name on a private domain registration Adding additional pages, so it's not a 1-page "doorway" Many thanks in advance to anyone who would share their experience and help me protect my client in the best way possible. I've told him there are risks, but he still wants to go ahead. MC
Web Design | | marketingcupcake1 -
Getting a lot more duplicate content warnings than I expected.
I run WordPress on many of my sites and a site crawl has found MANY duplicate content pages on the latest domain I started a campaign for. I expected to see quite a lot on the tag pages that only had one post but even tag pages with multiple posts and author and category pages with many posts are showing as duplicate content. Is this normal for a WordPress site to have so much duplicate content warnings from the taxonomy pages? I have the option to bulk noindex, follow the category and tag pages but should I do it? I get some traffic directly to the tag pages so removing the pages from search results would dent the traffic of the site a little (generally high bounce rate, low engagement traffic anyway) but could removing the apparent duplicate content actually improve the article pages themselves? Or does anyone have any WordPress specific advice for making the pages not duplicate content? I've toyed with the idea of just displaying excerpts but creating manual excerpts for the 4 years worth of posts, some of which I have no personal knowledge of the subject matter so other suggestions are welcome.
Web Design | | williampatton0 -
Solutions for too many links on page (Ecommerce)?
Hello Mozzers, Most Ecommerce websites I've come across have four main link sections - Main Nav - About, Contact etc Side Nav - List of Categories + Products Footer - Useful links etc Promotional Area - Promoting Best sellers / Latest products This ends up totalling anything from 200 to 500 links. I was wondering is there a reasonable solution to hide some of the links? Or should I just ignore the warning? Thanks, Dan
Web Design | | Sparkstone0 -
Multiple Sites, multiple locations similar / duplicate content
I am working with a business that wants to rank in local searches around the country for the same service. So they have websites such as OURSITE-chicago.com and OURSITE-seattle.com -- All of these sites are selling the same services, but with small variations in each state due to different legal standards in the state. The current strategy is to put up similar "local" websites with all the same content. So the bottom line is that we have a few different sites with the same content. The business wants to go national and is planning a different website for each location. In my opinion the duplicate content is a real problem. Unfortunately the nature of the service makes it so that there aren't many ways to say the same thing on each site 50 times without duplicate content. Rewriting content for each state seems like a daunting task when you have 70+ pages per site. So, from an SEO standpoint we have considered: Using the canonocalization tag on all but the central site... I think this would hurt all of the websites SERPs because none will have unique content. Having a central site with directories OURSITE.com/chicago -- but this creates a problem because we need to link back to the relevant content in the main site and ALSO have the unique "Chicago" content easily accessable to Chicago users while having Seattle users able to access their Seattle data. The best way we thought to do this was using a frame with a universal menu and a unique state based menu... Also not a good option because of frames will also hurt SEO. Rewrite all the same content 50 times. You can see why none of these are desirable options. But I know that plenty of websites have "state maps" on their main site. Is there a way to accomplish this in a way that doesn't make our copywriter want to kill us?
Web Design | | SysAdmin190