Internal Linking :
Meaning: Linking your valuable pages within your website.
Examples: Navigation (main & secondary menus) could serve as the best example of internal linking. Having a sitemap is another example.
Why Internal Linking? There are numerous articles on the internet that explain the need of internal linking from SEO perspective. But since you have reached here only after identifying the importance, we are not sharing the links :-)
Dynamic Internal Linking :
Your SEO team will always be able to come up with keywords and link mapping for the most valuable pages on your site. Using this one should be able to map those keywords into links within content of other pages on the site. And this module does exactly that. The dynamic part is more like a taxonomy configuration where you select keywords that fit your content the most and their first occurrence in the content is dynamically replaced as a link.
Motivation :
Internal links are most useful for establishing site architecture and drive the most link juice to valuable / landing pages.
Modus Operandi :
- Get the SEO team to prepare a list of keyword to link mapping
- Enable the module
- Enable dynamic internal linking for select content types
- While editing nodes of select content types, select upto 5 keywords and their first occurrence in the field will be replaced as a link
Drupal Procedure :
- Goto admin/config/search/dil or admin/config/search/dil/import-keywords (bulk import) to add keyword link mapping
- Goto any content type edit page and enable the dynamic internal linking (DIL) setting (in the vertical tabs), remember there must be at least one textarea field in your content type
- Enable DIL for that content type and enter the field name
- Now while adding a node for this content type, you will see a list of keywords
- Select (at most) five keywords, and save. Now on node view page it will replace the first occurrence of those keywords to respective links
More in future :
- Add option for automatic replace of keywords in the content
- Extend its functionality from textarea to other field types
Limitations :
- Replacement is limited to text area fields only
- Right now, we have 5 max replacements - will evolve with recommendations from SEO experts
- Replaces the first occurrence of the keyword ONLY - it is not recommended to replace all occurrences of the keyword to the same link but currently you cannot choose which one
Git Repository :
Use this command for cloning :
git clone --branch 7.x-1.x http://git.drupal.org/sandbox/gauravgoyal/2247861.git dynamic_internal_linking
| Comment | File | Size | Author |
|---|---|---|---|
| enable_Dil.png | 58.4 KB | gaurav.goyal | |
| select_keywords.png | 23.96 KB | gaurav.goyal | |
| Import_keywords.png | 35.43 KB | gaurav.goyal |
Comments
Comment #1
gaurav.goyal commentedComment #2
gaurav.goyal commentedComment #3
PA robot commentedWe are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)
Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #4
gaurav.goyal commentedComment #5
perennial.sky commentedHello gaurav.goyal
This Module is not working, when i create a node it throw an error
Recoverable fatal error: Argument 2 passed to dynamic_internal_linking_change_field_value() must be an instance of url, array given, called in /var/www/drupal/sites/all/modules/dynamic_internal_linking/dynamic_internal_linking.module on line 298 and defined in dynamic_internal_linking_change_field_value() (line 380 of /var/www/drupal/sites/all/modules/dynamic_internal_linking/dynamic_internal_linking.module).
else I just do a quick review your module here are some points that you must look on that.
1. Please put module configuration link in .info file
2. Please put a depenence of ctools in info file also
3. you are using cache_clear_all(); in unistall fuction it is not needed you can clear only variable cache
cache_clear_all('variables', 'cache');
4. In many places you check existance of array key like you are using array_key_exists('widget', $field_value)
so instead of this function you can use isset function
isset($field_value['widget'])
5. When converting keywords to link you are using a tag, try to avoid html use l() function
6. Please follow coding standard,
Comment #6
perennial.sky commentedComment #7
moelius commentedPareview has found Coder Sniffer & DrupalPractice errors:
Missing short description in doc comment;
Files must end in a single new line character.
It would be easy to fix this errors. Thanks for you job.
Comment #8
gaurav.goyal commentedComment #9
avpaderno