Hot answers tagged

16

The best way to do this is to use a .htpasswd file to prevent anyone (including spiders) from seeing the site if they are not authorized. This is much better than a robots.txt file because unlike robots.txt - it cannot be ignored. If a spider doesn't have your password, they cannot view the content. I typically like using a single, shared login for viewing ...


10

SEO Lite is always helpful. Dynamic but let's you do page level overrides. No site maps though. http://devot-ee.com/add-ons/seolite Also adds a tab to the publish view so it's readily available.


7

I actually use the following along with Focus Lab's master config: First I create php file called robots.php in root and I add the following to it: <?php header("Content-Type: text/plain"); require_once('../config/config.env.php'); echo "#".ENV_FULL." version of robots"; ?> <?php if(ENV != 'prod'): ?> User-agent: * Disallow: / <?php endif; ...


7

The 'proper' way to do this is to link as normal to single pages that show the entry detail but then use JS to hijack the link's target and pull in just the content via ajax. I use the MX Ajax Detect add-on to make a single template respond differently (ie, returning a full page vs returning just chunks of content) depending on whether it was requested via ...


6

In general, your best bet for SEO is to synchronize "the trinity" – Page title URL H1 heading If you had a blog entry, on a single-entry page, called "One More Blog Entry" – Page title (the <title> tag): One More Blog Entry URL: /blog/post/one-more-blog-entry H1 heading: One More Blog Entry If this were the About Us page, it would be: Page title (...


6

Done it! Using Stash. In my pagination tags I've added the following code: {exp:stash:set name="total_pages"}{total_pages}{/exp:stash:set} {exp:stash:set name="current_page"}{current_page}{/exp:stash:set} {if previous_page} {exp:stash:set name="prev_auto_path"}{auto_path}{/exp:stash:set} {/if} {if next_page} {exp:stash:set name="next_auto_path"}{...


6

Take a look at SEO Lite http://devot-ee.com/add-ons/seolite But really, you can just build this into your templates/field groups without the use of an add-on.


6

I would recommend this approach with Stash: http://www.jamessmith.co.uk/articles/expressionengine-stash-tutorial-level-1#meta I dislike add-ons that purport to "do" metadata for you, because unless your site is a very basic static page-based affair (where one entry always translates to one page) they can never cover all the possibilities for how metadata ...


5

If you set this in the <head> to stop any search engines crawling it <meta name="robots" content="noindex, nofollow">


5

You'll want to add 301 redirects to your .htaccess file, with the old URLs mapped to the new URLs. You can parameterize those redirects, so you can match on /walks/findwalk/category/[value] and have it insert that value in your new URL structure. You'll want to Google '301 redirects htaccess' for pointers. I've also found Perishable Press to be a good ...


5

You don't need an add-on to do this. Just add those items to your templates. You have complete control over every piece of markup in ExpressionEngine, so when it comes to adding any markup to any page generated by EE, it is never a question of "is there a way". If we could see how you've setup your templates (and know whether you're using shared bits of ...


4

The short answer is to just pass in either the entry_id or the url_title for this calendar entry, either of which should be easy enough to do on a detail page. To know which would be best in your case I'd need to see key parts of your template(s), but here are a couple examples. Option 1: Use the entry_id for your event from the URL: {exp:seo_lite ...


4

No. The CMS itself has nothing to do an increase in site traffic. However, if a developer doesn't know a lot about EE, it's likely to be perceived that Wordpress caters to SEO better than EE, but this just isn't true. Credible people from both platforms have great success with each (including SEO). The CMS is just a tool people choose for one reason or ...


4

Admin > Channel Administration > Global Preferences > Word Separator for URL Titles > Dash Or, in your config.php file (or your bootstrap equivalent): $config['word_separator'] = 'dash';


4

We use this code in our header embed; allows us to do something like {embed="site/_header" meta_title="Example Title"}; alternatively we can specify an entry ID, and SEO Lite will figure out the correct info, or, we can just let it rely on the last segment, which works 95% of the time. It's worth noting that we're also using Mark Croxton's IfElse add-on ...


4

Not necessarily, Google will index regardless. However, from a users perspective shorter URL's are always better. Stick with with one method and 301 redirect all the old URLs to the new ones so it doesn't affect your rankings.


4

Do search engines see index.php as the only page? Definitely not. Google treats it as part of the URL, the same as the other segments. There is no penalty to keeping index.php as the first segment. Even if you were using true query parameters in your URL (index.php?page=about-us), Google is smart enough to understand that this is a distinct page from index....


4

I like the Variables plugin for pushing meta data from my templates to my header. The variables plugin gives the possibility to create variables (either static or dynamic) and use them later on. This means that for example you can set certain data and use it in the head (if it's embedded) without having to re-create a tag pair for the specific channel. ...


4

Sounds like your htaccess file is rewriting the request and serving it to ExpressionEngine index.php. Ensure you have RewriteCond %{REQUEST_FILENAME} !-f in your htaccess file which will ignore all physical file requests and not ask EE to serve the request. # Directs all EE web requests through the site index file RewriteCond %{REQUEST_FILENAME} !-f ...


3

In most cases you wouldn't want your category, tag or archive pages being indexed anyway as it's much more important that the single-entry pages are the ones that are ranking, and also because you can run into duplicate content problems if some pages show exactly the same listing of posts. As long as your isotoped or infinitely-scrolling pages link through ...


3

You can use EE's native template access permissions to restrict access to a template to members of one or more member groups. You can configure this on a per template basis via the template manager in the Control Panel. You can set a template to redirect requests for that template to if they do not come from a logged in member of a permitted group (to a ...


3

I'm going to put my comment as an answer. For the first line you can change store_product_sku to {product_details:store_product_sku} For the second line if {title} works then IMO you are already in the exp:channel:entries so you have duplicated it that is why may not work correctly. Other way it looks fine. Also you can use short tag {sku} so you need to ...


2

Perhaps instead of looking for the last variable, you want to check if the page is paginated -- because that's basically what you're looking for, right? Check: http://devot-ee.com/add-ons/mo-variables {if paginated}, {if not_paginated}, {page_offset} are some variables that he has {if paginated} would probably work for you and simply check if there's ...


2

What will Google make of site.com/forum/answers/123 It will see that as a 302 (temporary) redirect, as that's what EE sends with the {redirect=""} tag (which calls the redirect method of the functions class). ... or will [Google] never see it? That all depends on where the links to your entries are coming from. If you want your links to appear a certain ...


2

I'm no SEO expert, but the problem starts happening when www.domain.com/index.php/about-us and www.domain.com/about-us are considered 2 different URLs even if they aren't being linked anywhere else on the site. Both can resolve to the same thing. I read this: http://kevinthompson.info/blog/2011/03/04/completely-remove-index-php-from-expressionengine-urls....


2

Regarding adding metadata I have you looked at the following: SEO Lite & Better Meta http://devot-ee.com/add-ons/seolite and http://ee-garage.com/nsm-better-meta (inc sitemaps) For no follow links theres: http://devot-ee.com/add-ons/no-follow (though it's straigtforward to add yourself) For sitemaps there: http://devot-ee.com/add-ons/sitemap-module ...


2

This is an old topic with plenty of useful information that seems to mirror your question. Hopefully this is helpful to you: https://stackoverflow.com/questions/13213812/getting-the-trailing-slash-back-in-expressionengine-2


2

I implemented pubsubhubbub using Superfeedr and it's working well for me. ...and yes, the Ellis Labs support forums are maddeningly slow for me, too. Support is now a profit center for them, so free support is worse than a cost center, it competes with their business model. [edited to correct spelling of Superfeedr]


2

ee-garage.com has an extremely complete addon >> nsm better meta. Also, the keyword meta tag is no longer included in search engine bot data mining. Good luck


2

Below final solution based on category custom fields (thanks to Mark), SEO Lite module, Low Seg2Cat and GWcode Categories plugin in case someone will have similar problem which I had. {if segment_2!="" && segment_3==""} {exp:gwcode_categories show="{segment_2_category_id}" custom_fields="yes" style="linear"} {embed="includes/.header-...


Only top voted, non community-wiki answers of a minimum length are eligible